openapi: 3.0.0
servers:
  - url: https://websecurityscanner.googleapis.com/
info:
  contact:
    name: Google
    url: https://google.com
    x-twitter: youtube
  description: Scans your Compute and App Engine apps for common web vulnerabilities.
  license:
    name: Creative Commons Attribution 3.0
    url: http://creativecommons.org/licenses/by/3.0/
  termsOfService: https://developers.google.com/terms/
  title: Web Security Scanner API
  version: v1
  x-apiClientRegistration:
    url: https://console.developers.google.com
  x-apisguru-categories:
    - analytics
    - media
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_www.google.com_images_branding_googlelogo_2x_googlelogo_color_272x92dp.png
  x-origin:
    - format: google
      url: https://websecurityscanner.googleapis.com/$discovery/rest?version=v1
      version: v1
  x-preferred: false
  x-providerName: googleapis.com
  x-serviceName: websecurityscanner
externalDocs:
  url: https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-overview/
tags:
  - name: projects
paths:
  "/v1/{name}":
    delete:
      description: Deletes an existing ScanConfig and its child resources.
      operationId: websecurityscanner.projects.scanConfigs.delete
      parameters:
        - description: Required. The resource name of the ScanConfig to be deleted. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    get:
      description: Gets a Finding.
      operationId: websecurityscanner.projects.scanConfigs.scanRuns.findings.get
      parameters:
        - description: Required. The resource name of the Finding to be returned. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}/findings/{findingId}'.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Finding"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    patch:
      description: Updates a ScanConfig. This method support partial update of a ScanConfig.
      operationId: websecurityscanner.projects.scanConfigs.patch
      parameters:
        - description: The resource name of the ScanConfig. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'. The ScanConfig IDs are generated by the system.
          in: path
          name: name
          required: true
          schema:
            type: string
        - description: Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
          in: query
          name: updateMask
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScanConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanConfig"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{name}:start":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Start a ScanRun according to the given ScanConfig.
      operationId: websecurityscanner.projects.scanConfigs.start
      parameters:
        - description: Required. The resource name of the ScanConfig to be used. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StartScanRunRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanRun"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{name}:stop":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Stops a ScanRun. The stopped ScanRun is returned.
      operationId: websecurityscanner.projects.scanConfigs.scanRuns.stop
      parameters:
        - description: Required. The resource name of the ScanRun to be stopped. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StopScanRunRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanRun"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{parent}/crawledUrls":
    get:
      description: List CrawledUrls under a given ScanRun.
      operationId: websecurityscanner.projects.scanConfigs.scanRuns.crawledUrls.list
      parameters:
        - description: Required. The parent resource name, which should be a scan run resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: The maximum number of CrawledUrls to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListCrawledUrlsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v1/{parent}/findingTypeStats":
    get:
      description: List all FindingTypeStats under a given ScanRun.
      operationId: websecurityscanner.projects.scanConfigs.scanRuns.findingTypeStats.list
      parameters:
        - description: Required. The parent resource name, which should be a scan run resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
          in: path
          name: parent
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListFindingTypeStatsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v1/{parent}/findings":
    get:
      description: List Findings under a given ScanRun.
      operationId: websecurityscanner.projects.scanConfigs.scanRuns.findings.list
      parameters:
        - description: Required. The parent resource name, which should be a scan run resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: "The filter expression. The expression must be in the format: . Supported field: 'finding_type'. Supported operator: '='."
          in: query
          name: filter
          schema:
            type: string
        - description: The maximum number of Findings to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListFindingsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v1/{parent}/scanConfigs":
    get:
      description: Lists ScanConfigs under a given project.
      operationId: websecurityscanner.projects.scanConfigs.list
      parameters:
        - description: Required. The parent resource name, which should be a project resource name in the format 'projects/{projectId}'.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: The maximum number of ScanConfigs to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListScanConfigsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Creates a new ScanConfig.
      operationId: websecurityscanner.projects.scanConfigs.create
      parameters:
        - description: Required. The parent resource name where the scan is created, which should be a project resource name in the format 'projects/{projectId}'.
          in: path
          name: parent
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScanConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanConfig"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{parent}/scanRuns":
    get:
      description: Lists ScanRuns under a given ScanConfig, in descending order of ScanRun stop time.
      operationId: websecurityscanner.projects.scanConfigs.scanRuns.list
      parameters:
        - description: Required. The parent resource name, which should be a scan resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}'.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: The maximum number of ScanRuns to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListScanRunsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
components:
  parameters:
    _.xgafv:
      description: V1 error format.
      in: query
      name: $.xgafv
      schema:
        enum:
          - "1"
          - "2"
        type: string
    access_token:
      description: OAuth access token.
      in: query
      name: access_token
      schema:
        type: string
    alt:
      description: Data format for response.
      in: query
      name: alt
      schema:
        enum:
          - json
          - media
          - proto
        type: string
    callback:
      description: JSONP
      in: query
      name: callback
      schema:
        type: string
    fields:
      description: Selector specifying which fields to include in a partial response.
      in: query
      name: fields
      schema:
        type: string
    key:
      description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
      in: query
      name: key
      schema:
        type: string
    oauth_token:
      description: OAuth 2.0 token for the current user.
      in: query
      name: oauth_token
      schema:
        type: string
    prettyPrint:
      description: Returns response with indentations and line breaks.
      in: query
      name: prettyPrint
      schema:
        type: boolean
    quotaUser:
      description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
      in: query
      name: quotaUser
      schema:
        type: string
    uploadType:
      description: Legacy upload protocol for media (e.g. "media", "multipart").
      in: query
      name: uploadType
      schema:
        type: string
    upload_protocol:
      description: Upload protocol for media (e.g. "raw", "multipart").
      in: query
      name: upload_protocol
      schema:
        type: string
  schemas:
    Authentication:
      description: Scan authentication configuration.
      properties:
        customAccount:
          $ref: "#/components/schemas/CustomAccount"
          description: Authentication using a custom account.
        googleAccount:
          $ref: "#/components/schemas/GoogleAccount"
          description: Authentication using a Google account.
        iapCredential:
          $ref: "#/components/schemas/IapCredential"
          description: Authentication using Identity-Aware-Proxy (IAP).
      type: object
    CrawledUrl:
      description: A CrawledUrl resource represents a URL that was crawled during a ScanRun. Web Security Scanner Service crawls the web applications, following all links within the scope of sites, to find the URLs to test against.
      properties:
        body:
          description: Output only. The body of the request that was used to visit the URL.
          type: string
        httpMethod:
          description: Output only. The http method of the request that was used to visit the URL, in uppercase.
          type: string
        url:
          description: Output only. The URL that was crawled.
          type: string
      type: object
    CustomAccount:
      description: Describes authentication configuration that uses a custom account.
      properties:
        loginUrl:
          description: Required. The login form URL of the website.
          type: string
        password:
          description: Required. Input only. The password of the custom account. The credential is stored encrypted and not returned in any response nor included in audit logs.
          type: string
        username:
          description: Required. The user name of the custom account.
          type: string
      type: object
    Empty:
      description: "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }"
      properties: {}
      type: object
    Finding:
      description: A Finding resource represents a vulnerability instance identified during a ScanRun.
      properties:
        body:
          description: Output only. The body of the request that triggered the vulnerability.
          type: string
        description:
          description: Output only. The description of the vulnerability.
          type: string
        finalUrl:
          description: Output only. The URL where the browser lands when the vulnerability is detected.
          type: string
        findingType:
          description: "Output only. The type of the Finding. Detailed and up-to-date information on findings can be found here: https://cloud.google.com/security-command-center/docs/how-to-remediate-web-security-scanner-findings"
          type: string
        form:
          $ref: "#/components/schemas/Form"
          description: Output only. An addon containing information reported for a vulnerability with an HTML form, if any.
        frameUrl:
          description: Output only. If the vulnerability was originated from nested IFrame, the immediate parent IFrame is reported.
          type: string
        fuzzedUrl:
          description: Output only. The URL produced by the server-side fuzzer and used in the request that triggered the vulnerability.
          type: string
        httpMethod:
          description: Output only. The http method of the request that triggered the vulnerability, in uppercase.
          type: string
        name:
          description: Output only. The resource name of the Finding. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanruns/{scanRunId}/findings/{findingId}'. The finding IDs are generated by the system.
          type: string
        outdatedLibrary:
          $ref: "#/components/schemas/OutdatedLibrary"
          description: Output only. An addon containing information about outdated libraries.
        reproductionUrl:
          description: Output only. The URL containing human-readable payload that user can leverage to reproduce the vulnerability.
          type: string
        severity:
          description: Output only. The severity level of the reported vulnerability.
          enum:
            - SEVERITY_UNSPECIFIED
            - CRITICAL
            - HIGH
            - MEDIUM
            - LOW
          readOnly: true
          type: string
        trackingId:
          description: Output only. The tracking ID uniquely identifies a vulnerability instance across multiple ScanRuns.
          type: string
        violatingResource:
          $ref: "#/components/schemas/ViolatingResource"
          description: Output only. An addon containing detailed information regarding any resource causing the vulnerability such as JavaScript sources, image, audio files, etc.
        vulnerableHeaders:
          $ref: "#/components/schemas/VulnerableHeaders"
          description: Output only. An addon containing information about vulnerable or missing HTTP headers.
        vulnerableParameters:
          $ref: "#/components/schemas/VulnerableParameters"
          description: Output only. An addon containing information about request parameters which were found to be vulnerable.
        xss:
          $ref: "#/components/schemas/Xss"
          description: Output only. An addon containing information reported for an XSS, if any.
        xxe:
          $ref: "#/components/schemas/Xxe"
          description: Output only. An addon containing information reported for an XXE, if any.
          readOnly: true
      type: object
    FindingTypeStats:
      description: A FindingTypeStats resource represents stats regarding a specific FindingType of Findings under a given ScanRun.
      properties:
        findingCount:
          description: Output only. The count of findings belonging to this finding type.
          format: int32
          type: integer
        findingType:
          description: Output only. The finding type associated with the stats.
          type: string
      type: object
    Form:
      description: "! Information about a vulnerability with an HTML."
      properties:
        actionUri:
          description: "! The URI where to send the form when it's submitted."
          type: string
        fields:
          description: "! The names of form fields related to the vulnerability."
          items:
            type: string
          type: array
      type: object
    GoogleAccount:
      description: Describes authentication configuration that uses a Google account.
      properties:
        password:
          description: Required. Input only. The password of the Google account. The credential is stored encrypted and not returned in any response nor included in audit logs.
          type: string
        username:
          description: Required. The user name of the Google account.
          type: string
      type: object
    Header:
      description: Describes a HTTP Header.
      properties:
        name:
          description: Header name.
          type: string
        value:
          description: Header value.
          type: string
      type: object
    IapCredential:
      description: Describes authentication configuration for Identity-Aware-Proxy (IAP).
      properties:
        iapTestServiceAccountInfo:
          $ref: "#/components/schemas/IapTestServiceAccountInfo"
          description: Authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies.
      type: object
    IapTestServiceAccountInfo:
      description: Describes authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies.
      properties:
        targetAudienceClientId:
          description: Required. Describes OAuth2 client id of resources protected by Identity-Aware-Proxy (IAP).
          type: string
      type: object
    ListCrawledUrlsResponse:
      description: Response for the `ListCrawledUrls` method.
      properties:
        crawledUrls:
          description: The list of CrawledUrls returned.
          items:
            $ref: "#/components/schemas/CrawledUrl"
          type: array
        nextPageToken:
          description: Token to retrieve the next page of results, or empty if there are no more results in the list.
          type: string
      type: object
    ListFindingTypeStatsResponse:
      description: Response for the `ListFindingTypeStats` method.
      properties:
        findingTypeStats:
          description: The list of FindingTypeStats returned.
          items:
            $ref: "#/components/schemas/FindingTypeStats"
          type: array
      type: object
    ListFindingsResponse:
      description: Response for the `ListFindings` method.
      properties:
        findings:
          description: The list of Findings returned.
          items:
            $ref: "#/components/schemas/Finding"
          type: array
        nextPageToken:
          description: Token to retrieve the next page of results, or empty if there are no more results in the list.
          type: string
      type: object
    ListScanConfigsResponse:
      description: Response for the `ListScanConfigs` method.
      properties:
        nextPageToken:
          description: Token to retrieve the next page of results, or empty if there are no more results in the list.
          type: string
        scanConfigs:
          description: The list of ScanConfigs returned.
          items:
            $ref: "#/components/schemas/ScanConfig"
          type: array
      type: object
    ListScanRunsResponse:
      description: Response for the `ListScanRuns` method.
      properties:
        nextPageToken:
          description: Token to retrieve the next page of results, or empty if there are no more results in the list.
          type: string
        scanRuns:
          description: The list of ScanRuns returned.
          items:
            $ref: "#/components/schemas/ScanRun"
          type: array
      type: object
    OutdatedLibrary:
      description: Information reported for an outdated library.
      properties:
        learnMoreUrls:
          description: URLs to learn more information about the vulnerabilities in the library.
          items:
            type: string
          type: array
        libraryName:
          description: The name of the outdated library.
          type: string
        version:
          description: The version number.
          type: string
      type: object
    ScanConfig:
      description: A ScanConfig resource contains the configurations to launch a scan.
      properties:
        authentication:
          $ref: "#/components/schemas/Authentication"
          description: The authentication configuration. If specified, service will use the authentication configuration during scanning.
        blacklistPatterns:
          description: The excluded URL patterns as described in https://cloud.google.com/security-command-center/docs/how-to-use-web-security-scanner#excluding_urls
          items:
            type: string
          type: array
        displayName:
          description: Required. The user provided display name of the ScanConfig.
          type: string
        exportToSecurityCommandCenter:
          description: Controls export of scan configurations and results to Security Command Center.
          enum:
            - EXPORT_TO_SECURITY_COMMAND_CENTER_UNSPECIFIED
            - ENABLED
            - DISABLED
          type: string
        ignoreHttpStatusErrors:
          description: Whether to keep scanning even if most requests return HTTP error codes.
          type: boolean
        managedScan:
          description: Whether the scan config is managed by Web Security Scanner, output only.
          type: boolean
        maxQps:
          description: The maximum QPS during scanning. A valid value ranges from 5 to 20 inclusively. If the field is unspecified or its value is set 0, server will default to 15. Other values outside of [5, 20] range will be rejected with INVALID_ARGUMENT error.
          format: int32
          type: integer
        name:
          description: The resource name of the ScanConfig. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'. The ScanConfig IDs are generated by the system.
          type: string
        riskLevel:
          description: The risk level selected for the scan
          enum:
            - RISK_LEVEL_UNSPECIFIED
            - NORMAL
            - LOW
          type: string
        schedule:
          $ref: "#/components/schemas/Schedule"
          description: The schedule of the ScanConfig.
        startingUrls:
          description: Required. The starting URLs from which the scanner finds site pages.
          items:
            type: string
          type: array
        staticIpScan:
          description: Whether the scan configuration has enabled static IP address scan feature. If enabled, the scanner will access applications from static IP addresses.
          type: boolean
        userAgent:
          description: The user agent used during scanning.
          enum:
            - USER_AGENT_UNSPECIFIED
            - CHROME_LINUX
            - CHROME_ANDROID
            - SAFARI_IPHONE
          type: string
      type: object
    ScanConfigError:
      description: Defines a custom error message used by CreateScanConfig and UpdateScanConfig APIs when scan configuration validation fails. It is also reported as part of a ScanRunErrorTrace message if scan validation fails due to a scan configuration error.
      properties:
        code:
          description: Output only. Indicates the reason code for a configuration failure.
          enum:
            - CODE_UNSPECIFIED
            - OK
            - INTERNAL_ERROR
            - APPENGINE_API_BACKEND_ERROR
            - APPENGINE_API_NOT_ACCESSIBLE
            - APPENGINE_DEFAULT_HOST_MISSING
            - CANNOT_USE_GOOGLE_COM_ACCOUNT
            - CANNOT_USE_OWNER_ACCOUNT
            - COMPUTE_API_BACKEND_ERROR
            - COMPUTE_API_NOT_ACCESSIBLE
            - CUSTOM_LOGIN_URL_DOES_NOT_BELONG_TO_CURRENT_PROJECT
            - CUSTOM_LOGIN_URL_MALFORMED
            - CUSTOM_LOGIN_URL_MAPPED_TO_NON_ROUTABLE_ADDRESS
            - CUSTOM_LOGIN_URL_MAPPED_TO_UNRESERVED_ADDRESS
            - CUSTOM_LOGIN_URL_HAS_NON_ROUTABLE_IP_ADDRESS
            - CUSTOM_LOGIN_URL_HAS_UNRESERVED_IP_ADDRESS
            - DUPLICATE_SCAN_NAME
            - INVALID_FIELD_VALUE
            - FAILED_TO_AUTHENTICATE_TO_TARGET
            - FINDING_TYPE_UNSPECIFIED
            - FORBIDDEN_TO_SCAN_COMPUTE
            - FORBIDDEN_UPDATE_TO_MANAGED_SCAN
            - MALFORMED_FILTER
            - MALFORMED_RESOURCE_NAME
            - PROJECT_INACTIVE
            - REQUIRED_FIELD
            - RESOURCE_NAME_INCONSISTENT
            - SCAN_ALREADY_RUNNING
            - SCAN_NOT_RUNNING
            - SEED_URL_DOES_NOT_BELONG_TO_CURRENT_PROJECT
            - SEED_URL_MALFORMED
            - SEED_URL_MAPPED_TO_NON_ROUTABLE_ADDRESS
            - SEED_URL_MAPPED_TO_UNRESERVED_ADDRESS
            - SEED_URL_HAS_NON_ROUTABLE_IP_ADDRESS
            - SEED_URL_HAS_UNRESERVED_IP_ADDRESS
            - SERVICE_ACCOUNT_NOT_CONFIGURED
            - TOO_MANY_SCANS
            - UNABLE_TO_RESOLVE_PROJECT_INFO
            - UNSUPPORTED_BLACKLIST_PATTERN_FORMAT
            - UNSUPPORTED_FILTER
            - UNSUPPORTED_FINDING_TYPE
            - UNSUPPORTED_URL_SCHEME
          type: string
        fieldName:
          description: Output only. Indicates the full name of the ScanConfig field that triggers this error, for example "scan_config.max_qps". This field is provided for troubleshooting purposes only and its actual value can change in the future.
          type: string
      type: object
    ScanRun:
      description: "A ScanRun is a output-only resource representing an actual run of the scan. Next id: 12"
      properties:
        endTime:
          description: Output only. The time at which the ScanRun reached termination state - that the ScanRun is either finished or stopped by user.
          format: google-datetime
          type: string
        errorTrace:
          $ref: "#/components/schemas/ScanRunErrorTrace"
          description: Output only. If result_state is an ERROR, this field provides the primary reason for scan's termination and more details, if such are available.
        executionState:
          description: Output only. The execution state of the ScanRun.
          enum:
            - EXECUTION_STATE_UNSPECIFIED
            - QUEUED
            - SCANNING
            - FINISHED
          type: string
        hasVulnerabilities:
          description: Output only. Whether the scan run has found any vulnerabilities.
          type: boolean
        name:
          description: Output only. The resource name of the ScanRun. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'. The ScanRun IDs are generated by the system.
          type: string
        progressPercent:
          description: Output only. The percentage of total completion ranging from 0 to 100. If the scan is in queue, the value is 0. If the scan is running, the value ranges from 0 to 100. If the scan is finished, the value is 100.
          format: int32
          type: integer
        resultState:
          description: Output only. The result state of the ScanRun. This field is only available after the execution state reaches "FINISHED".
          enum:
            - RESULT_STATE_UNSPECIFIED
            - SUCCESS
            - ERROR
            - KILLED
          type: string
        startTime:
          description: Output only. The time at which the ScanRun started.
          format: google-datetime
          type: string
        urlsCrawledCount:
          description: Output only. The number of URLs crawled during this ScanRun. If the scan is in progress, the value represents the number of URLs crawled up to now.
          format: int64
          type: string
        urlsTestedCount:
          description: Output only. The number of URLs tested during this ScanRun. If the scan is in progress, the value represents the number of URLs tested up to now. The number of URLs tested is usually larger than the number URLS crawled because typically a crawled URL is tested with multiple test payloads.
          format: int64
          type: string
        warningTraces:
          description: Output only. A list of warnings, if such are encountered during this scan run.
          items:
            $ref: "#/components/schemas/ScanRunWarningTrace"
          type: array
      type: object
    ScanRunErrorTrace:
      description: Output only. Defines an error trace message for a ScanRun.
      properties:
        code:
          description: Output only. Indicates the error reason code.
          enum:
            - CODE_UNSPECIFIED
            - INTERNAL_ERROR
            - SCAN_CONFIG_ISSUE
            - AUTHENTICATION_CONFIG_ISSUE
            - TIMED_OUT_WHILE_SCANNING
            - TOO_MANY_REDIRECTS
            - TOO_MANY_HTTP_ERRORS
            - STARTING_URLS_CRAWL_HTTP_ERRORS
          type: string
        mostCommonHttpErrorCode:
          description: Output only. If the scan encounters TOO_MANY_HTTP_ERRORS, this field indicates the most common HTTP error code, if such is available. For example, if this code is 404, the scan has encountered too many NOT_FOUND responses.
          format: int32
          type: integer
        scanConfigError:
          $ref: "#/components/schemas/ScanConfigError"
          description: Output only. If the scan encounters SCAN_CONFIG_ISSUE error, this field has the error message encountered during scan configuration validation that is performed before each scan run.
      type: object
    ScanRunWarningTrace:
      description: Output only. Defines a warning trace message for ScanRun. Warning traces provide customers with useful information that helps make the scanning process more effective.
      properties:
        code:
          description: Output only. Indicates the warning code.
          enum:
            - CODE_UNSPECIFIED
            - INSUFFICIENT_CRAWL_RESULTS
            - TOO_MANY_CRAWL_RESULTS
            - TOO_MANY_FUZZ_TASKS
            - BLOCKED_BY_IAP
            - NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN
          type: string
      type: object
    Schedule:
      description: Scan schedule configuration.
      properties:
        intervalDurationDays:
          description: Required. The duration of time between executions in days.
          format: int32
          type: integer
        scheduleTime:
          description: A timestamp indicates when the next run will be scheduled. The value is refreshed by the server after each run. If unspecified, it will default to current server time, which means the scan will be scheduled to start immediately.
          format: google-datetime
          type: string
      type: object
    StartScanRunRequest:
      description: Request for the `StartScanRun` method.
      properties: {}
      type: object
    StopScanRunRequest:
      description: Request for the `StopScanRun` method.
      properties: {}
      type: object
    ViolatingResource:
      description: Information regarding any resource causing the vulnerability such as JavaScript sources, image, audio files, etc.
      properties:
        contentType:
          description: The MIME type of this resource.
          type: string
        resourceUrl:
          description: URL of this violating resource.
          type: string
      type: object
    VulnerableHeaders:
      description: Information about vulnerable or missing HTTP Headers.
      properties:
        headers:
          description: List of vulnerable headers.
          items:
            $ref: "#/components/schemas/Header"
          type: array
        missingHeaders:
          description: List of missing headers.
          items:
            $ref: "#/components/schemas/Header"
          type: array
      type: object
    VulnerableParameters:
      description: Information about vulnerable request parameters.
      properties:
        parameterNames:
          description: The vulnerable parameter names.
          items:
            type: string
          type: array
      type: object
    Xss:
      description: Information reported for an XSS.
      properties:
        attackVector:
          description: The attack vector of the payload triggering this XSS.
          enum:
            - ATTACK_VECTOR_UNSPECIFIED
            - LOCAL_STORAGE
            - SESSION_STORAGE
            - WINDOW_NAME
            - REFERRER
            - FORM_INPUT
            - COOKIE
            - POST_MESSAGE
            - GET_PARAMETERS
            - URL_FRAGMENT
            - HTML_COMMENT
            - POST_PARAMETERS
            - PROTOCOL
            - STORED_XSS
            - SAME_ORIGIN
            - USER_CONTROLLABLE_URL
          type: string
        errorMessage:
          description: An error message generated by a javascript breakage.
          type: string
        stackTraces:
          description: Stack traces leading to the point where the XSS occurred.
          items:
            type: string
          type: array
        storedXssSeedingUrl:
          description: The reproduction url for the seeding POST request of a Stored XSS.
          type: string
      type: object
    Xxe:
      description: Information reported for an XXE.
      properties:
        payloadLocation:
          description: Location within the request where the payload was placed.
          enum:
            - LOCATION_UNSPECIFIED
            - COMPLETE_REQUEST_BODY
          type: string
        payloadValue:
          description: The XML string that triggered the XXE vulnerability. Non-payload values might be redacted.
          type: string
      type: object
  securitySchemes:
    Oauth2:
      description: Oauth 2.0 implicit authentication
      flows:
        implicit:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          scopes:
            https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
      type: oauth2
    Oauth2c:
      description: Oauth 2.0 authorizationCode authentication
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          scopes:
            https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
          tokenUrl: https://accounts.google.com/o/oauth2/token
      type: oauth2
