openapi: 3.0.3
info:
  title: Develocity API
  description: |
    The Develocity API allows programmatic interaction with various aspects of Develocity, from configuration to inspecting build data.
  version: "2025.4"
  license:
    name: Develocity License
    url: https://gradle.com/help/legal-gradle-software-license-agreement
  termsOfService: https://gradle.com/help/legal-terms-of-use
  contact:
    name: Gradle
    url: https://gradle.com
  x-logo:
    url: https://assets.gradle.com/logo/develocity-logo.svg
    altText: Develocity
servers:
  - url: https://develocity.example.com
    description: Your Develocity instance.
security:
  - DevelocityAccessKeyOrToken: []
tags:
  - name: Auth
    description: |
      Endpoints related to Develocity authentication and authorization. 
      The permissions required for these endpoints vary.
      Consult the endpoint descriptions.
  - name: Builds
    description: |
      Endpoints related to retrieving details of a build from the Develocity instance. 
      To access these endpoints the user requires the `Access build data via the API` permission.
  - name: BuildCache
    x-displayName: Build Cache
    description: |
      Endpoints related to configuring the Build Cache nodes of the Develocity instance. 
      To access these endpoints the user requires the `Configure Build Caching` permission.
  - name: Failures
    x-displayName: |
      Failures (Beta)
    description: |
      Endpoints related to retrieving details about failures of builds from the Develocity instance. 
      To access these endpoints the user requires the `Access build data via the API` permission.

      **<mark>Beta:</mark> _The Failures API is unstable and is likely to change in future._**
  - name: Projects
    x-displayName: |
      Projects (Beta)
    description: |
      Endpoints related to the management of project-level access control in Develocity.
      To access these endpoints the user requires the `Administer Projects` permission.

      **<mark>Beta:</mark> _The Projects API is unstable and is likely to change in future._**
  - name: Tests
    description: |
      Endpoints related to retrieving details of tests of the Develocity instance. 
      To access these endpoints the user requires the `Access build data via the API` permission.
      The Develocity installation also needs to have the Test Failure Analytics feature enabled.
  - name: Meta
    x-displayName: Meta
    description: |
      Endpoints related to the Develocity installation and its state.
  - name: TestDistribution
    x-displayName: Test Distribution
    description: |
      Endpoints related to the management of Test Distribution resources.
      To access these endpoints the user requires the `Admin` permission.
  - name: Develocity
    x-traitTag: true
    description: All endpoints of the Develocity API.
  - name: GradleEnterprise
    x-traitTag: true
    description: |
      **This tag is deprecated, use `Develocity` instead**.
      All endpoints of the Develocity API.
paths:
  /api/auth/revoke-signing-keys:
    post:
      operationId: RevokeSigningKeys
      summary: Revoke auth token signing keys
      description: Revokes the existing auth token signing keys, and creates a new one. Requires the `Configure operational settings` permission. All existing access tokens will become invalid. Develocity may take a few minutes to revoke all existing access tokens.
      tags:
        - Auth
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The existing signing keys have been revoked, all access tokens will become invalid shortly
        '400':
          $ref: '#/components/responses/BadRequestError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /api/auth/token:
    post:
      operationId: CreateAccessToken
      summary: Create a new access token
      description: Create a new short-lived access token, optionally limited to the provided permissions and projects. Users do not need any specific Develocity permission to do this, but must be authenticated. If an access key is used to authenticate this request, the created token will be limited to the user's permissions and projects. If an access token is used to authenticate this request, the created token will be limited to the authenticating token's permissions and projects and not live longer than the authenticating token's remaining lifetime. Query parameters can be used to further restrict the permissions of the access token. A 401 response will be sent if the request is not authenticated. A 403 response will be sent if one of the projects or permissions present in the query parameters is not assigned to this user. A 403 will also be sent if an access token is used to authenticate the request and the requested expiration date is after the authenticating access token's expiration.
      tags:
        - Auth
        - GradleEnterprise
        - Develocity
      parameters:
        - in: query
          name: projectIds
          schema:
            type: array
            uniqueItems: true
            items:
              $ref: '#/components/schemas/ProjectId'
          example:
            - project-a,project-b
            - project-c
          explode: true
          required: false
          description: Limit the created token to one or more projects. Values should be project ids. Comma seperated values and repeated parameters are supported.
        - in: query
          name: permissions
          schema:
            type: array
            uniqueItems: true
            items:
              $ref: '#/components/schemas/Permission'
          example:
            - publishScan,readCache
            - writeCache
          explode: true
          required: false
          description: Limit the created token to one or more permissions. Values should be permission [config values](https://gradle.com/help/helm-admin-permissions). Comma seperated values and repeated parameters are supported.
        - in: query
          name: expiresInHours
          schema:
            type: number
            format: float
            minimum: 0
            exclusiveMinimum: true
            maximum: 24
            default: 2
          example: 0.5
          required: false
          description: The lifetime of the created token, in hours.
      responses:
        '200':
          description: An access token
          content:
            text/plain:
              schema:
                type: string
              example: eyJraWQiOiJ0ZXN0LWtleSIsImFsZyI6IlJTMjU2IiwidHlwIjoiSldUIn0.eyJpc19hbm9ueW1vdXMiOmZhbHNlLCJwZXJtaXNzaW9ucyI6WyJSRUFEX1ZFUlNJT04iLCJFWFBPUlRfREFUQSIsIkFDQ0VTU19EQVRBX1dJVEhPVVRfQVNTT0NJQVRFRF9QUk9KRUNUIl0sInByb2plY3RzIjp7ImEiOjEsImIiOjJ9LCJ1c2VyX2lkIjoic29tZS1pZCIsInVzZXJuYW1lIjoidGVzdCIsImZpcnN0X25hbWUiOiJhIiwibGFzdF9uYW1lIjoidXNlciIsImVtYWlsIjoiYkBncmFkbGUuY29tIiwic3ViIjoidGVzdCIsImV4cCI6NzIwMCwibmJmIjowLCJpYXQiOjAsImF1ZCI6ImV4YW1wbGUuZ3JhZGxlLmNvbSIsImlzcyI6ImV4YW1wbGUuZ3JhZGxlLmNvbSIsInRva2VuX3R5cGUiOiJhY2Nlc3NfdG9rZW4ifQ.H1_NEG1xuleP-WIAY_uvSmdd2o7i_-Ko3qhlo04zvCgrElJe7_F5jNuqsyDfnb5hvKlOe5UKG_7QPTgY9-3pFQ
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/AccessTokenForbidden'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /api/build-cache/nodes/{name}:
    parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
        description: The name of the Build Cache Node. To select the Built-in Build Cache Node, use `Built-in` as name.
    get:
      operationId: GetBuildCacheNode
      summary: View the configuration of a Build Cache Node.
      description: View the enablement status and replication configuration of a Build Cache Node.
      tags:
        - BuildCache
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The configuration of a Build Cache Node.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NodeConfiguration'
              example:
                enabled: false
                replication:
                  source: parent-node-1
                  preemptive: true
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    put:
      operationId: CreateOrUpdateBuildCacheNode
      summary: Create or update a Build Cache Node.
      description: |
        Create a new Build Cache Node in Develocity or update the configuration of an existing one.
        The Built-in Build Cache Node cannot be named as the target of this operation.
      tags:
        - BuildCache
        - GradleEnterprise
        - Develocity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NodeConfiguration'
            example:
              enabled: false
              replication:
                source: parent-node-1
                preemptive: true
      responses:
        '200':
          description: The name referenced an existing Build Cache Node and that Build Cache Node’s configuration was updated successfully.
        '201':
          description: A new Build Cache Node was created with the configuration specified in the request.
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /api/build-cache/nodes/{name}/purge:
    parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
        description: The name of the Build Cache Node. To select the Built-in Build Cache Node, use `Built-in` as name.
    post:
      operationId: InitiatePurgeOfBuildCacheNode
      summary: Deletes all entries from a Build Cache Node.
      description: |
        Triggers the deletion of all entries stored at the named Build Cache Node.
      tags:
        - BuildCache
        - GradleEnterprise
        - Develocity
      responses:
        '202':
          description: Purging the Build Cache Node was successfully initiated.
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NodeNotSignedInError'
  /api/build-cache/nodes/{name}/secret:
    parameters:
      - in: path
        name: name
        schema:
          type: string
        required: true
        description: The name of the Build Cache Node.
    post:
      operationId: RegenerateSecretOfBuildCacheNode
      summary: Regenerate the secret of a Build Cache Node.
      description: |
        Regenerates the secret associated with the named Build Cache Node. The old secret expires immediately, causing the Build Cache Node to
        disconnect from Develocity. The Built-in Build Cache Node cannot be named as the target of this operation.
      tags:
        - BuildCache
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The name referenced an existing Build Cache Node and that Build Cache Node's secret was regenerated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeySecretPair'
              example:
                key: cvzxztkqkqxzc3vcruabpcr264
                secret: e5ag76yp6abcc5jbxusboca313
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /api/builds:
    description: |
      Returns a list of builds with common attributes.
      The returned list is capped by the `maxBuilds` and `maxWaitSecs` query parameters.
      This endpoint supports pagination by using the `fromBuild` or `sinceBuild` query parameters, and the last returned build from a previous call to one of these endpoints.
    parameters:
      - in: query
        name: BuildsQuery
        explode: true
        description: The query parameters used to retrieve the list of builds.
        schema:
          title: BuildsQuery
          type: object
          properties:
            fromInstant:
              type: integer
              format: int64
              minimum: 0
              nullable: true
              description: |
                A unix-epoch-time in milliseconds allowing to retrieve builds for which Develocity completed receiving and processing the build after this instant when used in conjunction with `reverse=false`, or before this instant when used in conjunction with `reverse=true`.
                Therefore, a value of `0` will process all builds.
                If not provided, the time in milliseconds when the request is received by the Develocity instance will be used.
                This parameter has no effect if `fromBuild` is used.
            fromBuild:
              type: string
              nullable: true
              description: |
                A Build Scan ID allowing to retrieve builds for which Develocity completed receiving and processing after the given Build Scan ID (excluding it) when used in conjunction with `reverse=false`, or before the given Build Scan ID (excluding it) when used in conjunction with `reverse=true`.
                This parameter has precedence over any value set for the `since`, `sinceBuild`, `fromInstant` parameters.
                A valid Build Scan ID must be provided, that is, a Build Scan ID that exists in the Develocity instance.
                A Build Scan ID for a deleted build is valid.
            reverse:
              type: boolean
              nullable: true
              description: |
                A boolean indicating the time direction of the query.
                A value of `true` indicates a backward query, and returned builds will be sorted from most to least recent.
                A value of `false` indicates a forward query, and returned builds will be sorted from least to most recent.
                This parameter has no effect if any of `since`, `sinceBuild` are used.
                If not provided, the default value is `false`.
            maxBuilds:
              type: integer
              minimum: 0
              maximum: 1000
              nullable: true
              description: |
                The maximum number of builds returned by the query.
                The query returns when that number is reached or when `maxWaitSecs` is reached.
                If not provided, the default value is `100`.
            maxWaitSecs:
              type: integer
              minimum: 1
              maximum: 20
              nullable: true
              description: |
                The maximum number of seconds to wait for builds before returning.
                If this time is reached before `maxBuilds` is reached, the query returns with the already processed builds.
                Note that this time is respected with best effort.
                A query will return soon after this time has passed but there is no guarantee that it exactly returns before this time has passed.
                This parameter has no effect if `reverse=true` is specified, because new builds cannot become available in the past.
                If not provided, the default value is `3`.
            query:
              type: string
              nullable: true
              description: |
                A query for filtering builds, written in the Develocity advanced search query language
                See: https://gradle.com/help/advanced-search
            models:
              $ref: '#/components/schemas/BuildModelNames'
            allModels:
              type: boolean
              default: false
              description: |
                Whether to include all build models for each build.
                If set to `true`, the value of the `models` parameter is ignored.
            since:
              type: integer
              format: int64
              minimum: 0
              nullable: true
              description: |
                **This parameter is deprecated, use `fromInstant` instead.**
                A unix-epoch-time in milliseconds allowing to retrieve builds for which Develocity completed receiving and processing the build after this instant.
                This parameter can only be used with `reverse=false`.
                Therefore, a value of `0` will process all builds.
                If not provided, the time in milliseconds when the request is received by the Develocity instance will be used.
                This parameter has no effect if any of `sinceBuild`, `fromInstant`, `fromBuild` are used.
              deprecated: true
            sinceBuild:
              type: string
              nullable: true
              description: |
                **This parameter is deprecated, use `fromBuild` instead.**
                A Build Scan ID allowing to retrieve builds for which Develocity completed receiving and processing after the given Build Scan ID (excluding it).
                This parameter can only be used with `reverse=false`.
                This parameter has precedence over any value set for the `since` parameter.
                A valid Build Scan ID must be provided, that is, a Build Scan ID that exists in the Develocity instance.
                A Build Scan ID for a deleted build is valid.
                This parameter has no effect if any of `fromInstant`, `fromBuild` are used.
              deprecated: true
            skipUnavailableModels:
              type: boolean
              default: false
              description: |
                Will skip build models that are not available at the time of the handling of the call.
    get:
      operationId: GetBuilds
      summary: Get a list of builds with common attributes.
      description: |
        The contained attributes are build tool agnostic.
        If none of `fromInstant`, `fromBuild`, or `reverse` is used, when making a request to this endpoint, it will return builds that were received and processed by Develocity after the request was made.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: A list of builds with common attributes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Builds'
              example:
                - id: 9r4d13f0r3v3r
                  availableAt: 1635400481000
                  buildToolType: gradle
                  buildToolVersion: '7.2'
                  buildAgentVersion: 3.7.1
                  models:
                    gradleAttributes:
                      model:
                        id: 9r4d13f0r3v3r
                        buildStartTime: 1637316480
                        buildDuration: 5000
                        gradleVersion: '7.3'
                        pluginVersion: 3.7.2
                        rootProjectName: example-project
                        requestedTasks:
                          - clean
                          - build
                        hasFailed: true
                        hasVerificationFailure: true
                        hasNonVerificationFailure: true
                        tags:
                          - CI
                          - feature-branch
                        values:
                          - name: branch
                            value: feature/one
                          - name: commitId
                            value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
                        links:
                          - label: CI job
                            url: https://ci.com/job1
                          - label: GIT commit
                            url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
                        gradleEnterpriseSettings:
                          backgroundPublicationEnabled: true
                          buildOutputCapturingEnabled: true
                          taskInputsFileCapturingEnabled: true
                          testOutputCapturingEnabled: true
                          resourceUsageCapturingEnabled: true
                        develocitySettings:
                          backgroundPublicationEnabled: true
                          buildOutputCapturingEnabled: true
                          fileFingerprintCapturingEnabled: true
                          taskInputsFileCapturingEnabled: true
                          testOutputCapturingEnabled: true
                          resourceUsageCapturingEnabled: true
                        buildOptions:
                          buildCacheEnabled: true
                          configurationCacheEnabled: true
                          configurationOnDemandEnabled: true
                          continuousBuildEnabled: true
                          continueOnFailureEnabled: true
                          daemonEnabled: true
                          dryRunEnabled: true
                          excludedTasks:
                            - takesALongTime
                            - doesNotLikeToBeExecuted
                          fileSystemWatchingEnabled: true
                          maxNumberOfGradleWorkers: 4
                          offlineModeEnabled: true
                          parallelProjectExecutionEnabled: true
                          refreshDependenciesEnabled: true
                          rerunTasksEnabled: true
                        environment:
                          username: gradle
                          operatingSystem: macOS 12.2.1 (x86_64)
                          numberOfCpuCores: 16
                          jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
                          jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
                          jvmMaxMemoryHeapSize: 16777216
                          jvmCharset: UTF-8
                          jvmLocale: English (United States)
                          publicHostname: agent.gradle.com
                          localHostname: gradle
                          localIpAddresses:
                            - 192.168.1.126
                            - 192.168.1.128
                    gradleDependencies:
                      model:
                        dependencies:
                          - scheme: pkg
                            type: maven
                            namespace: org.apache.xmlgraphics
                            name: batik-anim
                            version: 1.9.1
                            qualifiers:
                              repository_url: https://repo.maven.apache.org/maven2/
                            purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F
                            repository:
                              url: https://repo.maven.apache.org/maven2/
                              type: maven
                              resolutionSource: remote
                    mavenAttributes:
                      problem:
                        type: urn:gradle:enterprise:api:problems:build-model-not-applicable
                        title: Build model is not applicable.
                        detail: Build model is not available for build with ID '9r4d13f0r3v3r' because its build tool type is 'gradle' (allowed list is '[maven]').
                        status: 400
                - id: ji7vz3ey5qdvk
                  availableAt: 1635400482000
                  buildToolType: maven
                  buildToolVersion: 3.8.4
                  buildAgentVersion: '1.13'
                  models:
                    gradleAttributes:
                      problem:
                        type: urn:gradle:enterprise:api:problems:build-model-not-applicable
                        title: Build model is not applicable.
                        detail: Build model is not available for build with ID 'ji7vz3ey5qdvk' because its build tool type is 'maven' (allowed list is '[gradle]').
                        status: 400
                    mavenAttributes:
                      model:
                        id: 9r4d13f0r3v3r
                        buildStartTime: 1637316480
                        buildDuration: 11000
                        mavenVersion: 3.8.4
                        extensionVersion: 1.11.1
                        topLevelProjectName: example-project
                        requestedGoals:
                          - clean
                          - verify
                        hasFailed: true
                        hasVerificationFailure: true
                        hasNonVerificationFailure: true
                        tags:
                          - CI
                          - feature-branch
                        values:
                          - name: branch
                            value: feature/one
                          - name: commitId
                            value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
                        links:
                          - label: CI job
                            url: https://ci.com/job1
                          - label: GIT commit
                            url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
                        develocitySettings:
                          backgroundPublicationEnabled: true
                          buildOutputCapturingEnabled: true
                          fileFingerprintCapturingEnabled: true
                          goalInputsFileCapturingEnabled: true
                          testOutputCapturingEnabled: true
                          resourceUsageCapturingEnabled: true
                        buildOptions:
                          batchModeEnabled: true
                          debugEnabled: true
                          errorsEnabled: true
                          failAtEndEnabled: true
                          failFastEnabled: true
                          failNeverEnabled: true
                          laxChecksumsEnabled: true
                          maxNumberOfThreads: 4
                          nonRecursiveEnabled: true
                          noSnapshotsUpdatesEnabled: true
                          offlineModeEnabled: true
                          quietEnabled: true
                          rerunGoals: false
                          strictChecksumsEnabled: true
                          updateSnapshotsEnabled: true
                        environment:
                          username: maven
                          operatingSystem: macOS 12.2.1 (x86_64)
                          numberOfCpuCores: 16
                          jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
                          jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
                          jvmMaxMemoryHeapSize: 16777216
                          jvmCharset: UTF-8
                          jvmLocale: English (United States)
                          publicHostname: agent.gradle.com
                          localHostname: maven
                          localIpAddresses:
                            - 192.168.1.126
                            - 192.168.1.128
                        gradleEnterpriseSettings:
                          backgroundPublicationEnabled: true
                          buildOutputCapturingEnabled: true
                          goalInputsFileCapturingEnabled: true
                          testOutputCapturingEnabled: true
                          resourceUsageCapturingEnabled: true
                    mavenDependencies:
                      model:
                        dependencies:
                          - scheme: pkg
                            type: maven
                            namespace: org.apache.xmlgraphics
                            name: batik-anim
                            version: 1.9.1
                            qualifiers:
                              repository_url: https://repo.maven.apache.org/maven2/
                              type: jar
                            purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F&type=jar
                            repository:
                              url: https://repo.maven.apache.org/maven2/
                              type: maven
                              resolutionSource: remote
                - id: cvpd4j7ug7j4q
                  availableAt: 1635400483000
                  buildToolType: bazel
                  buildToolVersion: 6.0.0
                  buildAgentVersion: '1.0'
                  models:
                    gradleAttributes:
                      problem:
                        type: urn:gradle:enterprise:api:problems:build-model-not-applicable
                        title: Build model is not applicable.
                        detail: Build model is not available for build with ID 'cvpd4j7ug7j4q' because its build tool type is 'bazel' (allowed list is '[gradle]').
                        status: 400
                    mavenAttributes:
                      problem:
                        type: urn:gradle:enterprise:api:problems:build-model-not-applicable
                        title: Build model is not applicable.
                        detail: Build model is not available for build with ID 'cvpd4j7ug7j4q' because its build tool type is 'bazel' (allowed list is '[maven]').
                        status: 400
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the common attributes of a build.
        schema:
          $ref: '#/components/schemas/BuildQuery'
    get:
      operationId: GetBuild
      summary: Get the common attributes of a build.
      description: The contained attributes are build tool agnostic.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The common attributes of a build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Build'
              example:
                id: 9r4d13f0r3v3r
                availableAt: 1635400481000
                buildToolType: gradle
                buildToolVersion: '7.2'
                buildAgentVersion: 3.7.1
                models:
                  gradleAttributes:
                    model:
                      id: 9r4d13f0r3v3r
                      buildStartTime: 1637316480
                      buildDuration: 5000
                      gradleVersion: '7.3'
                      pluginVersion: 3.7.2
                      rootProjectName: example-project
                      requestedTasks:
                        - clean
                        - build
                      hasFailed: true
                      hasVerificationFailure: true
                      hasNonVerificationFailure: true
                      tags:
                        - CI
                        - feature-branch
                      values:
                        - name: branch
                          value: feature/one
                        - name: commitId
                          value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
                      links:
                        - label: CI job
                          url: https://ci.com/job1
                        - label: GIT commit
                          url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
                      develocitySettings:
                        backgroundPublicationEnabled: true
                        buildOutputCapturingEnabled: true
                        fileFingerprintCapturingEnabled: true
                        taskInputsFileCapturingEnabled: true
                        testOutputCapturingEnabled: true
                        resourceUsageCapturingEnabled: true
                      buildOptions:
                        buildCacheEnabled: true
                        configurationCacheEnabled: true
                        configurationOnDemandEnabled: true
                        continuousBuildEnabled: true
                        continueOnFailureEnabled: true
                        daemonEnabled: true
                        dryRunEnabled: true
                        excludedTasks:
                          - takesALongTime
                          - doesNotLikeToBeExecuted
                        fileSystemWatchingEnabled: true
                        maxNumberOfGradleWorkers: 4
                        offlineModeEnabled: true
                        parallelProjectExecutionEnabled: true
                        refreshDependenciesEnabled: true
                        rerunTasksEnabled: true
                      environment:
                        username: gradle
                        operatingSystem: macOS 12.2.1 (x86_64)
                        numberOfCpuCores: 16
                        jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
                        jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
                        jvmMaxMemoryHeapSize: 16777216
                        jvmCharset: UTF-8
                        jvmLocale: English (United States)
                        publicHostname: agent.gradle.com
                        localHostname: gradle
                        localIpAddresses:
                          - 192.168.1.126
                          - 192.168.1.128
                      gradleEnterpriseSettings:
                        backgroundPublicationEnabled: true
                        buildOutputCapturingEnabled: true
                        taskInputsFileCapturingEnabled: true
                        testOutputCapturingEnabled: true
                        resourceUsageCapturingEnabled: true
                  gradleDependencies:
                    model:
                      dependencies:
                        - scheme: pkg
                          type: maven
                          namespace: org.apache.xmlgraphics
                          name: batik-anim
                          version: 1.9.1
                          qualifiers:
                            repository_url: https://repo.maven.apache.org/maven2/
                          purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F
                          repository:
                            url: https://repo.maven.apache.org/maven2/
                            type: maven
                            resolutionSource: remote
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/bazel-attributes:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of a Bazel build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetBazelAttributes
      summary: Get the attributes of a Bazel build.
      description: This model is Bazel specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The attributes of a Bazel build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BazelAttributes'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/bazel-critical-path:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the critical path of a Bazel build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetBazelCriticalPath
      summary: Get the critical path of a Bazel build.
      description: This model is Bazel specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The critical path of a Bazel build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BazelCriticalPath'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-artifact-transform-executions:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the artifact transform execution list of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleArtifactTransformExecutions
      summary: Get the artifact transform execution list of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The artifact transform execution list of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleArtifactTransformExecutions'
              example:
                artifactTransformExecutions:
                  - artifactTransformExecutionName: project :lib [color=green]
                    transformActionType: com.test.MakeColor
                    inputArtifactName: lib.jar
                    changedAttributes:
                      - name: color
                        from: blue
                        to: green
                    outcome: success
                    avoidanceOutcome: executed_cacheable
                    duration: 224
                    fingerprintingDuration: 1
                    cacheArtifactSize: 470
                    cacheKey: 34025cdc0be090f2901543d673b3c45e
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-attributes:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleAttributes
      summary: Get the attributes of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The attributes of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleAttributes'
              example:
                id: 9r4d13f0r3v3r
                buildStartTime: 1637316480
                buildDuration: 5000
                gradleVersion: '7.3'
                pluginVersion: 3.7.2
                rootProjectName: example-project
                requestedTasks:
                  - clean
                  - build
                hasFailed: true
                hasVerificationFailure: true
                hasNonVerificationFailure: true
                tags:
                  - CI
                  - feature-branch
                values:
                  - name: branch
                    value: feature/one
                  - name: commitId
                    value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
                links:
                  - label: CI job
                    url: https://ci.com/job1
                  - label: GIT commit
                    url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
                develocitySettings:
                  backgroundPublicationEnabled: true
                  buildOutputCapturingEnabled: true
                  fileFingerprintCapturingEnabled: true
                  taskInputsFileCapturingEnabled: true
                  testOutputCapturingEnabled: true
                  resourceUsageCapturingEnabled: true
                buildOptions:
                  buildCacheEnabled: true
                  configurationCacheEnabled: true
                  configurationOnDemandEnabled: true
                  continuousBuildEnabled: true
                  continueOnFailureEnabled: true
                  daemonEnabled: true
                  dryRunEnabled: true
                  excludedTasks:
                    - takesALongTime
                    - doesNotLikeToBeExecuted
                  fileSystemWatchingEnabled: true
                  maxNumberOfGradleWorkers: 4
                  offlineModeEnabled: true
                  parallelProjectExecutionEnabled: true
                  refreshDependenciesEnabled: true
                  rerunTasksEnabled: true
                environment:
                  username: gradle
                  operatingSystem: macOS 12.2.1 (x86_64)
                  numberOfCpuCores: 16
                  jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
                  jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
                  jvmMaxMemoryHeapSize: 16777216
                  jvmCharset: UTF-8
                  jvmLocale: English (United States)
                  publicHostname: agent.gradle.com
                  localHostname: gradle
                  localIpAddresses:
                    - 192.168.1.126
                    - 192.168.1.128
                gradleEnterpriseSettings:
                  backgroundPublicationEnabled: true
                  buildOutputCapturingEnabled: true
                  taskInputsFileCapturingEnabled: true
                  testOutputCapturingEnabled: true
                  resourceUsageCapturingEnabled: true
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-build-cache-performance:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the build cache performance of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleBuildCachePerformance
      summary: Get the build cache performance of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The build cache performance of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleBuildCachePerformance'
              example:
                id: 9r4d13f0r3v3r
                buildTime: 5000
                effectiveTaskExecutionTime: 5000
                effectiveWorkUnitExecutionTime: 5000
                serialTaskExecutionTime: 10000
                serialWorkUnitExecutionTime: 10000
                serializationFactor: 2
                taskExecution:
                  - taskPath: ':task'
                    taskType: org.gradle.api.tasks.Task
                    avoidanceOutcome: avoided_from_local_cache
                    duration: 5000
                    fingerprintingDuration: 5
                    avoidanceSavings: 6000
                    cacheArtifactSize: 3000
                    hasFailed: false
                  - taskPath: ':task2'
                    taskType: org.gradle.api.tasks.Task
                    avoidanceOutcome: avoided_from_remote_cache
                    duration: 3000
                    fingerprintingDuration: 3
                    avoidanceSavings: 4000
                    cacheArtifactSize: 3000
                    hasFailed: false
                  - taskPath: ':task3'
                    taskType: org.gradle.api.tasks.Task
                    avoidanceOutcome: executed_not_cacheable
                    duration: 2000
                    fingerprintingDuration: 6
                    nonCacheabilityCategory: cache-if_condition_not_matched
                    nonCacheabilityReason: '''Task outputs cacheable'' not satisfied'
                    hasFailed: false
                  - taskPath: ':task4'
                    taskType: org.gradle.api.tasks.Task
                    avoidanceOutcome: skipped
                    duration: 0
                    fingerprintingDuration: 0
                    skipReasonMessage: some skip reason message
                    hasFailed: false
                taskFingerprintingSummary:
                  count: 1
                  serialDuration: 8
                workUnitFingerprintingSummary:
                  count: 5
                  serialDuration: 20
                avoidanceSavingsSummary:
                  total: 10000
                  ratio: 0.55556
                  upToDate: 0
                  localBuildCache: 6000
                  remoteBuildCache: 4000
                taskAvoidanceSavingsSummary:
                  total: 10000
                  ratio: 0.55556
                  upToDate: 0
                  localBuildCache: 6000
                  remoteBuildCache: 4000
                workUnitAvoidanceSavingsSummary:
                  total: 20000
                  ratio: 0.75556
                  upToDate: 1
                  localBuildCache: 9000
                  remoteBuildCache: 2000
                buildCaches:
                  local:
                    isEnabled: true
                    isPushEnabled: true
                    isDisabledDueToError: false
                  remote:
                    type: HTTP
                    className: org.example.MyBuildCache
                    isEnabled: true
                    isPushEnabled: true
                    isDisabledDueToError: false
                  overhead:
                    uploading: 100
                    downloading: 200
                    packing: 50
                    unpacking: 25
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-build-profile-overview:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the performance profile overview of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleBuildProfileOverview
      summary: Get the performance profile overview of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The performance profile overview of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleBuildProfileOverview'
              example:
                breakdown:
                  total: 15465
                  initialization: 5460
                  configuration: 5000
                  execution: 2505
                  endOfBuild: 2500
                memoryUsage:
                  totalGarbageCollectionTime: 12548
                  memoryPools:
                    - name: PS Eden Space
                      maxMemory: 1073741824
                      peakMemory: 536870912
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-configuration-cache:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the configuration cache information for a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleConfigurationCache
      summary: Get the configuration cache information for a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The configuration cache result of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleConfigurationCache'
              example:
                result:
                  outcome: MISS
                  entrySize: 1254385
                  checkFingerprintDuration: 10
                  dependencyResolutionDuration: 100
                  store:
                    duration: 200
                    hasFailed: false
                  load:
                    duration: 500
                    hasFailed: false
                  missReasons:
                    - no cached configuration was available
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-dependencies:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the dependencies of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleDependencies
      summary: Get the dependencies of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The dependencies of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleDependencies'
              example:
                dependencies:
                  - scheme: pkg
                    type: maven
                    namespace: org.apache.xmlgraphics
                    name: batik-anim
                    version: 1.9.1
                    qualifiers:
                      repository_url: https://repo.maven.apache.org/maven2/
                    purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F
                    repository:
                      url: https://repo.maven.apache.org/maven2/
                      type: maven
                      resolutionSource: remote
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-deprecations:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the deprecations for a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleDeprecations
      summary: Get the Gradle Build Tool deprecations of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The deprecation list of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleDeprecations'
              example:
                deprecations:
                  - summary: Task deprecatedTask2 has been deprecated.
                    removalDetails: This is scheduled to be removed in Gradle 9.0.
                    advice: Do not trigger deprecatedTask2 task.
                    usages:
                      - owner:
                          location: core/core.gradle
                          type: script
                  - summary: CoorpPlugin has been deprecated.
                    removalDetails: This is scheduled to be removed in Gradle 9.0.
                    advice: Use non deprecated plugin instead.
                    documentationUrl: https://docs.gradle.org/8.5/userguide/coorpplugin2.html
                    usages:
                      - contextualAdvice: Use CoorpPlugin2 for build-with-deprecations instead.
                        owner:
                          location: org.acme.coorp-plugin
                          type: plugin
                      - contextualAdvice: Use CoorpPlugin2 for utils instead.
                        owner:
                          location: org.acme.coorp-plugin
                          type: plugin
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-network-activity:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the network activity of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleNetworkActivity
      summary: Get the network activity of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool. This model is only available starting with Gradle version 3.5 and Develocity Gradle Plugin version 1.6.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The network activity of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleNetworkActivity'
              example:
                networkRequestCount: 20
                serialNetworkRequestTime: 500
                wallClockNetworkRequestTime: 25
                fileDownloadCount: 18
                fileDownloadSize: 2049
                methods:
                  HEAD:
                    networkRequestCount: 2
                    serialNetworkRequestTime: 22
                    fileDownloadCount: 0
                    fileDownloadSize: 0
                    wallClockNetworkRequestTime: 5
                  GET:
                    networkRequestCount: 18
                    serialNetworkRequestTime: 478
                    fileDownloadCount: 18
                    fileDownloadSize: 2049
                    wallClockNetworkRequestTime: 237
                repositories:
                  https://plugins.gradle.org/m2:
                    networkRequestCount: 2
                    serialNetworkRequestTime: 22
                    fileDownloadCount: 0
                    fileDownloadSize: 0
                    wallClockNetworkRequestTime: 5
                  https://repo.maven.apache.org/maven2/:
                    networkRequestCount: 18
                    serialNetworkRequestTime: 478
                    fileDownloadCount: 18
                    fileDownloadSize: 2049
                    wallClockNetworkRequestTime: 237
                repositoryMethods:
                  HEAD https://plugins.gradle.org/m2:
                    networkRequestCount: 2
                    serialNetworkRequestTime: 22
                    fileDownloadCount: 0
                    fileDownloadSize: 0
                    wallClockNetworkRequestTime: 5
                  GET https://repo.maven.apache.org/maven2/:
                    networkRequestCount: 18
                    serialNetworkRequestTime: 478
                    fileDownloadCount: 18
                    fileDownloadSize: 2049
                    wallClockNetworkRequestTime: 237
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-plugins:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the plugins for a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradlePlugins
      summary: Get the plugins of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The list of plugins in a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradlePlugins'
              example:
                plugins:
                  - id: example-plugin-name
                    className: org.example.ExamplePlugin
                    version: 1.0.1
                    projects:
                      - ':'
                      - ':sub'
                  - id: example-plugin2-name
                    className: org.example.ExamplePlugin2
                    projects:
                      - ':'
                  - id: SomeOtherPlugin
                    className: org.example.SomeOtherPlugin
                    version: 2.0.0
                    projects: []
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-projects:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the build structure of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleProjects
      summary: Get the projects of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The projects of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleProjects'
              example:
                - name: root project
                  path: ':'
                - name: sub project
                  path: ':sub'
                  parent: 0
                - name: included build root project
                  path: ':included'
                - name: included build sub project
                  path: ':included:sub'
                  parent: 2
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-resource-usage:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the resource usage of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleResourceUsage
      summary: Get the resource usage of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The resource usage of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleResourceUsage'
              example:
                total:
                  allProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildProcessCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildChildProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  allProcessesMemory:
                    max: 42949672960
                    average: 21474836480
                    median: 21474836480
                    p5: 1073741824
                    p25: 1073741824
                    p75: 21474836480
                    p95: 21474836480
                  buildProcessMemory:
                    max: 10737418240
                    average: 10737418240
                    median: 10737418240
                    p5: 10737418240
                    p25: 10737418240
                    p75: 10737418240
                    p95: 10737418240
                  buildChildProcessesMemory:
                    max: 2147483648
                    average: 2147483648
                    median: 2147483648
                    p5: 2147483648
                    p25: 2147483648
                    p75: 2147483648
                    p95: 2147483648
                  diskReadThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  diskWriteThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  networkUploadThroughput:
                    max: 500
                    average: 300
                    median: 200
                    p5: 1
                    p25: 250
                    p75: 350
                    p95: 450
                  networkDownloadThroughput:
                    max: 800
                    average: 200
                    median: 100
                    p5: 10
                    p25: 300
                    p75: 500
                    p95: 600
                nonExecution:
                  allProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildProcessCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildChildProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  allProcessesMemory:
                    max: 42949672960
                    average: 21474836480
                    median: 21474836480
                    p5: 1073741824
                    p25: 1073741824
                    p75: 21474836480
                    p95: 21474836480
                  buildProcessMemory:
                    max: 10737418240
                    average: 10737418240
                    median: 10737418240
                    p5: 10737418240
                    p25: 10737418240
                    p75: 10737418240
                    p95: 10737418240
                  buildChildProcessesMemory:
                    max: 2147483648
                    average: 2147483648
                    median: 2147483648
                    p5: 2147483648
                    p25: 2147483648
                    p75: 2147483648
                    p95: 2147483648
                  diskReadThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  diskWriteThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  networkUploadThroughput:
                    max: 500
                    average: 300
                    median: 200
                    p5: 1
                    p25: 250
                    p75: 350
                    p95: 450
                  networkDownloadThroughput:
                    max: 800
                    average: 200
                    median: 100
                    p5: 10
                    p25: 300
                    p75: 500
                    p95: 600
                execution:
                  allProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildProcessCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildChildProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  allProcessesMemory:
                    max: 42949672960
                    average: 21474836480
                    median: 21474836480
                    p5: 1073741824
                    p25: 1073741824
                    p75: 21474836480
                    p95: 21474836480
                  buildProcessMemory:
                    max: 10737418240
                    average: 10737418240
                    median: 10737418240
                    p5: 10737418240
                    p25: 10737418240
                    p75: 10737418240
                    p95: 10737418240
                  buildChildProcessesMemory:
                    max: 2147483648
                    average: 2147483648
                    median: 2147483648
                    p5: 2147483648
                    p25: 2147483648
                    p75: 2147483648
                    p95: 2147483648
                  diskReadThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  diskWriteThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  networkUploadThroughput:
                    max: 500
                    average: 300
                    median: 200
                    p5: 1
                    p25: 250
                    p75: 350
                    p95: 450
                  networkDownloadThroughput:
                    max: 800
                    average: 200
                    median: 100
                    p5: 10
                    p25: 300
                    p75: 500
                    p95: 600
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/gradle-test-performance:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of a Gradle build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetGradleTestPerformance
      summary: Get test performance-related metrics of a Gradle build.
      description: This model is Gradle specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: Test performance-related metrics of a Gradle build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GradleTestPerformance'
              example:
                tests:
                  testClassesCount: 20
                serialTestTasksExecutionTime: 7000
                testAcceleration:
                  predictiveTestSelection:
                    usage:
                      status: enabled
                      selectionMode: relevant
                      wallClockSavings: 750
                      serialTimeSavings: 750
                    simulation:
                      conservative:
                        wallClockSavingsPotential: 10
                        serialTimeSavingsPotential: 20
                        workUnitFailuresPredictedCount: 30
                        workUnitFailuresMissedCount: 40
                        avoidableTestClassesCount: 50
                        unavoidableTestClassesCount: 60
                        testClassesCountSelectedDueToInsufficientData: 70
                      standard:
                        wallClockSavingsPotential: 10
                        serialTimeSavingsPotential: 20
                        workUnitFailuresPredictedCount: 30
                        workUnitFailuresMissedCount: 40
                        avoidableTestClassesCount: 50
                        unavoidableTestClassesCount: 60
                        testClassesCountSelectedDueToInsufficientData: 70
                      fast:
                        wallClockSavingsPotential: 10
                        serialTimeSavingsPotential: 20
                        workUnitFailuresPredictedCount: 30
                        workUnitFailuresMissedCount: 40
                        avoidableTestClassesCount: 50
                        unavoidableTestClassesCount: 60
                        testClassesCountSelectedDueToInsufficientData: 70
                  testDistribution:
                    usageStatus: enabled
                    wallClockSavings: 850
                  wallClockSavings: 1250
                testTasks:
                  - taskPath: ':proj1:test'
                    taskType: org.gradle.api.tasks.testing.Test
                    wallClockExecutionTime: 2000
                    serialExecutionTime: 3000
                    tests:
                      failedTestClassesCount: 5
                      testClassesCount: 10
                    testAcceleration:
                      predictiveTestSelection:
                        usage:
                          status: enabled
                          selectionMode: relevant
                          wallClockSavings: 750
                          serialTimeSavings: 750
                          nonSelectedTestClassesCount: 1
                        simulation:
                          conservative:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          standard:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          fast:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                      testDistribution:
                        usageStatus: enabled
                        wallClockSavings: 850
                        remoteTestClassesCount: 3
                      wallClockSavings: 1250
                  - taskPath: ':proj2:test'
                    taskType: org.gradle.api.tasks.testing.Test
                    wallClockExecutionTime: 3000
                    serialExecutionTime: 4000
                    tests:
                      failedTestClassesCount: 5
                      testClassesCount: 10
                    testAcceleration:
                      predictiveTestSelection:
                        usage:
                          status: enabled
                          selectionMode: relevant
                          wallClockSavings: 750
                          serialTimeSavings: 750
                          nonSelectedTestClassesCount: 1
                        simulation:
                          conservative:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          standard:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          fast:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                      testDistribution:
                        usageStatus: enabled
                        wallClockSavings: 850
                        remoteTestClassesCount: 3
                      wallClockSavings: 1250
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-attributes:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenAttributes
      summary: Get the attributes of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The attributes of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenAttributes'
              example:
                id: 9r4d13f0r3v3r
                buildStartTime: 1637316480
                buildDuration: 11000
                mavenVersion: 3.8.4
                extensionVersion: 1.11.1
                topLevelProjectName: example-project
                requestedGoals:
                  - clean
                  - verify
                hasFailed: true
                hasVerificationFailure: true
                hasNonVerificationFailure: true
                tags:
                  - CI
                  - feature-branch
                values:
                  - name: branch
                    value: feature/one
                  - name: commitId
                    value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
                links:
                  - label: CI job
                    url: https://ci.com/job1
                  - label: GIT commit
                    url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
                develocitySettings:
                  backgroundPublicationEnabled: true
                  buildOutputCapturingEnabled: true
                  fileFingerprintCapturingEnabled: true
                  goalInputsFileCapturingEnabled: true
                  testOutputCapturingEnabled: true
                  resourceUsageCapturingEnabled: true
                buildOptions:
                  batchModeEnabled: true
                  debugEnabled: true
                  errorsEnabled: true
                  failAtEndEnabled: true
                  failFastEnabled: true
                  failNeverEnabled: true
                  laxChecksumsEnabled: true
                  maxNumberOfThreads: 4
                  nonRecursiveEnabled: true
                  noSnapshotsUpdatesEnabled: true
                  offlineModeEnabled: true
                  quietEnabled: true
                  rerunGoals: false
                  strictChecksumsEnabled: true
                  updateSnapshotsEnabled: true
                environment:
                  username: maven
                  operatingSystem: macOS 12.2.1 (x86_64)
                  numberOfCpuCores: 16
                  jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
                  jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
                  jvmMaxMemoryHeapSize: 16777216
                  jvmCharset: UTF-8
                  jvmLocale: English (United States)
                  publicHostname: agent.gradle.com
                  localHostname: maven
                  localIpAddresses:
                    - 192.168.1.126
                    - 192.168.1.128
                gradleEnterpriseSettings:
                  backgroundPublicationEnabled: true
                  buildOutputCapturingEnabled: true
                  goalInputsFileCapturingEnabled: true
                  testOutputCapturingEnabled: true
                  resourceUsageCapturingEnabled: true
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-build-cache-performance:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the build cache performance of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenBuildCachePerformance
      summary: Get the build cache performance of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The build cache performance of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenBuildCachePerformance'
              example:
                id: 9r4d13f0r3v3r
                buildTime: 5000
                effectiveProjectExecutionTime: 5000
                serialProjectExecutionTime: 10000
                serializationFactor: 2
                goalExecution:
                  - goalName: clean:clean
                    mojoType: org.apache.maven.plugin.jar.JarMojo
                    goalExecutionId: default-clean
                    goalProjectName: myproject
                    avoidanceOutcome: executed_not_cacheable
                    duration: 2000
                    nonCacheabilityCategory: build_cache_disabled_by_user
                    nonCacheabilityReason: Neither the local or remote build cache were enabled in the configuration of the build.
                    hasFailed: false
                  - goalName: compiler:compile
                    mojoType: org.apache.maven.plugin.jar.JarMojo
                    goalExecutionId: default-compile
                    goalProjectName: myproject
                    avoidanceOutcome: avoided_from_local_cache
                    duration: 5000
                    fingerprintingDuration: 5
                    avoidanceSavings: 6000
                    cacheArtifactSize: 3000
                    hasFailed: false
                  - goalName: compiler:compile
                    mojoType: org.apache.maven.plugin.jar.JarMojo
                    goalExecutionId: default-compile
                    goalProjectName: myproject2
                    avoidanceOutcome: avoided_from_remote_cache
                    duration: 3000
                    fingerprintingDuration: 3
                    avoidanceSavings: 4000
                    cacheArtifactSize: 3000
                    hasFailed: false
                goalFingerprintingSummary:
                  count: 1
                  serialDuration: 8
                avoidanceSavingsSummary:
                  total: 10000
                  ratio: 0.55556
                  localBuildCache: 6000
                  remoteBuildCache: 4000
                buildCaches:
                  local:
                    isEnabled: true
                    isDisabledDueToError: false
                  remote:
                    isEnabled: true
                    isPushEnabled: true
                    isDisabledDueToError: false
                  overhead:
                    uploading: 100
                    downloading: 200
                    packing: 50
                    unpacking: 25
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-build-profile-overview:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the performance profile overview of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenBuildProfileOverview
      summary: Get the performance profile overview of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The performance profile overview of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenBuildProfileOverview'
              example:
                breakdown:
                  total: 15465
                  initializationAndDiscovery:
                    total: 5860
                    settings: 5000
                    toolchains: 460
                    other: 400
                  execution:
                    total: 3000
                    goalExecution: 500
                    endOfBuild: 2500
                memoryUsage:
                  totalGarbageCollectionTime: 12548
                  memoryPools:
                    - name: PS Eden Space
                      maxMemory: 1073741824
                      peakMemory: 536870912
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-dependencies:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the dependencies of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenDependencies
      summary: Get the dependencies of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The dependencies of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenDependencies'
              example:
                dependencies:
                  - scheme: pkg
                    type: maven
                    namespace: org.apache.xmlgraphics
                    name: batik-anim
                    version: 1.9.1
                    qualifiers:
                      repository_url: https://repo.maven.apache.org/maven2/
                      type: jar
                    purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F&type=jar
                    repository:
                      url: https://repo.maven.apache.org/maven2/
                      type: maven
                      resolutionSource: remote
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-dependency-resolution:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the dependency resolution of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenDependencyResolution
      summary: Get information about the dependency resolution of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.  This model is only available starting with the Develocity Maven Extension version 1.9.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: Information about the dependency resolution of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenDependencyResolution'
              example:
                networkRequestCount: 10
                serialNetworkRequestTime: 1000
                wallClockNetworkRequestTime: 50
                fileDownloadSize: 1025
                fileDownloadCount: 8
                serialDependencyResolutionTime: 40
                methods:
                  GET:
                    networkRequestCount: 10
                    serialNetworkRequestTime: 1000
                    fileDownloadSize: 1025
                    fileDownloadCount: 8
                    wallClockNetworkRequestTime: 50
                repositories:
                  https://repo.maven.apache.org/maven2/:
                    networkRequestCount: 10
                    serialNetworkRequestTime: 1000
                    fileDownloadSize: 1025
                    fileDownloadCount: 8
                    wallClockNetworkRequestTime: 50
                repositoryMethods:
                  GET https://repo.maven.apache.org/maven2/:
                    networkRequestCount: 10
                    serialNetworkRequestTime: 1000
                    fileDownloadSize: 1025
                    fileDownloadCount: 8
                    wallClockNetworkRequestTime: 50
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-extensions:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the extensions for a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenExtensions
      summary: Get the extensions of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The list of extensions in a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenExtensions'
              example:
                extensions:
                  - groupId: org.apache.maven
                    artifactId: maven-core
                    version: 3.9.9
                    type: CORE
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-modules:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the build structure of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenModules
      summary: Get the modules of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The modules of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenModules'
              example:
                - name: top level project
                  groupId: com
                  artifactId: top-level
                  version: '1.0'
                - name: sub project a
                  groupId: com
                  artifactId: sub-a
                  version: '1.1'
                  parent: 0
                - name: sub project b
                  groupId: com
                  artifactId: sub-b
                  version: '2.0'
                  parent: 0
                - name: sub project a 2
                  groupId: com
                  artifactId: sub-a-a
                  version: 2.1-SNAPSHOT
                  parent: 1
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-plugins:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the plugins of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenPlugins
      summary: Get the plugins of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The plugin list of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenPlugins'
              example:
                plugins:
                  - groupId: org.example
                    artifactId: plugin-id
                    name: Example Plugin
                    version: 1.0.1
                    executedGoals: []
                    modules:
                      - com.example:top-level
                      - com:example:sub-level
                    goalPrefix: prefix
                    requiredMavenVersion: 3.0.0
                  - groupId: org.example
                    artifactId: plugin-with-no-name
                    version: 2.0.1
                    executedGoals:
                      - generate
                    modules:
                      - com.example:top-level
                    goalPrefix: test
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-resource-usage:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the resource usage of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenResourceUsage
      summary: Get the resource usage of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The resource usage of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenResourceUsage'
              example:
                total:
                  allProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildProcessCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildChildProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  allProcessesMemory:
                    max: 42949672960
                    average: 21474836480
                    median: 21474836480
                    p5: 1073741824
                    p25: 1073741824
                    p75: 21474836480
                    p95: 21474836480
                  buildProcessMemory:
                    max: 10737418240
                    average: 10737418240
                    median: 10737418240
                    p5: 10737418240
                    p25: 10737418240
                    p75: 10737418240
                    p95: 10737418240
                  buildChildProcessesMemory:
                    max: 2147483648
                    average: 2147483648
                    median: 2147483648
                    p5: 2147483648
                    p25: 2147483648
                    p75: 2147483648
                    p95: 2147483648
                  diskReadThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  diskWriteThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  networkUploadThroughput:
                    max: 500
                    average: 300
                    median: 200
                    p5: 1
                    p25: 250
                    p75: 350
                    p95: 450
                  networkDownloadThroughput:
                    max: 800
                    average: 200
                    median: 100
                    p5: 10
                    p25: 300
                    p75: 500
                    p95: 600
                nonExecution:
                  allProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildProcessCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildChildProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  allProcessesMemory:
                    max: 42949672960
                    average: 21474836480
                    median: 21474836480
                    p5: 1073741824
                    p25: 1073741824
                    p75: 21474836480
                    p95: 21474836480
                  buildProcessMemory:
                    max: 10737418240
                    average: 10737418240
                    median: 10737418240
                    p5: 10737418240
                    p25: 10737418240
                    p75: 10737418240
                    p95: 10737418240
                  buildChildProcessesMemory:
                    max: 2147483648
                    average: 2147483648
                    median: 2147483648
                    p5: 2147483648
                    p25: 2147483648
                    p75: 2147483648
                    p95: 2147483648
                  diskReadThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  diskWriteThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  networkUploadThroughput:
                    max: 500
                    average: 300
                    median: 200
                    p5: 1
                    p25: 250
                    p75: 350
                    p95: 450
                  networkDownloadThroughput:
                    max: 800
                    average: 200
                    median: 100
                    p5: 10
                    p25: 300
                    p75: 500
                    p95: 600
                execution:
                  allProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildProcessCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  buildChildProcessesCpu:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  allProcessesMemory:
                    max: 42949672960
                    average: 21474836480
                    median: 21474836480
                    p5: 1073741824
                    p25: 1073741824
                    p75: 21474836480
                    p95: 21474836480
                  buildProcessMemory:
                    max: 10737418240
                    average: 10737418240
                    median: 10737418240
                    p5: 10737418240
                    p25: 10737418240
                    p75: 10737418240
                    p95: 10737418240
                  buildChildProcessesMemory:
                    max: 2147483648
                    average: 2147483648
                    median: 2147483648
                    p5: 2147483648
                    p25: 2147483648
                    p75: 2147483648
                    p95: 2147483648
                  diskReadThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  diskWriteThroughput:
                    max: 100
                    average: 50
                    median: 50
                    p5: 10
                    p25: 25
                    p75: 75
                    p95: 95
                  networkUploadThroughput:
                    max: 500
                    average: 300
                    median: 200
                    p5: 1
                    p25: 250
                    p75: 350
                    p95: 450
                  networkDownloadThroughput:
                    max: 800
                    average: 200
                    median: 100
                    p5: 10
                    p25: 300
                    p75: 500
                    p95: 600
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/maven-test-performance:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of a Maven build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetMavenTestPerformance
      summary: Get test performance-related metrics of a Maven build.
      description: This model is Maven specific and cannot be requested for another build tool.
      tags:
        - Builds
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: Test performance-related metrics of a Maven build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MavenTestPerformance'
              example:
                tests:
                  testClassesCount: 20
                serialTestGoalsExecutionTime: 7000
                testAcceleration:
                  predictiveTestSelection:
                    usage:
                      status: enabled
                      selectionMode: relevant
                      wallClockSavings: 750
                      serialTimeSavings: 750
                    simulation:
                      conservative:
                        wallClockSavingsPotential: 10
                        serialTimeSavingsPotential: 20
                        workUnitFailuresPredictedCount: 30
                        workUnitFailuresMissedCount: 40
                        avoidableTestClassesCount: 50
                        unavoidableTestClassesCount: 60
                        testClassesCountSelectedDueToInsufficientData: 70
                      standard:
                        wallClockSavingsPotential: 10
                        serialTimeSavingsPotential: 20
                        workUnitFailuresPredictedCount: 30
                        workUnitFailuresMissedCount: 40
                        avoidableTestClassesCount: 50
                        unavoidableTestClassesCount: 60
                        testClassesCountSelectedDueToInsufficientData: 70
                      fast:
                        wallClockSavingsPotential: 10
                        serialTimeSavingsPotential: 20
                        workUnitFailuresPredictedCount: 30
                        workUnitFailuresMissedCount: 40
                        avoidableTestClassesCount: 50
                        unavoidableTestClassesCount: 60
                        testClassesCountSelectedDueToInsufficientData: 70
                  testDistribution:
                    usageStatus: enabled
                    wallClockSavings: 850
                  wallClockSavings: 1250
                testGoals:
                  - goalPath: surefire:test
                    goalType: org.apache.maven.plugin.surefire.SurefireMojo
                    wallClockExecutionTime: 2000
                    serialExecutionTime: 3000
                    tests:
                      failedTestClassesCount: 5
                      testClassesCount: 10
                    testAcceleration:
                      predictiveTestSelection:
                        usage:
                          status: enabled
                          selectionMode: relevant
                          wallClockSavings: 750
                          serialTimeSavings: 750
                          nonSelectedTestClassesCount: 1
                        simulation:
                          conservative:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          standard:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          fast:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                      testDistribution:
                        usageStatus: enabled
                        wallClockSavings: 850
                        remoteTestClassesCount: 3
                      wallClockSavings: 1250
                  - goalPath: failsafe:test
                    goalType: org.apache.maven.plugin.failsafe.IntegrationTestMojo
                    wallClockExecutionTime: 3000
                    serialExecutionTime: 4000
                    tests:
                      failedTestClassesCount: 5
                      testClassesCount: 10
                    testAcceleration:
                      predictiveTestSelection:
                        usage:
                          status: enabled
                          selectionMode: relevant
                          wallClockSavings: 750
                          serialTimeSavings: 750
                          nonSelectedTestClassesCount: 1
                        simulation:
                          conservative:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          standard:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                          fast:
                            wallClockSavingsPotential: 10
                            serialTimeSavingsPotential: 20
                            avoidableTestClassesCount: 30
                            unavoidableTestClassesCount: 40
                            testClassesCountSelectedDueToInsufficientData: 50
                            failedTestClassesPredictedCount: 60
                      testDistribution:
                        usageStatus: enabled
                        wallClockSavings: 850
                        remoteTestClassesCount: 3
                      wallClockSavings: 1250
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/npm-attributes:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of an npm build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetNpmAttributes
      summary: Get the attributes of an npm build.
      description: This model is npm specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The attributes of an npm build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpmAttributes'
              example:
                id: 9r4d13f0r3v3r
                buildStartTime: 1637316480
                buildDuration: 11000
                exitCode: 1
                nodejsVersion: 22.17.0
                npmVersion: 10.9.2
                npmAgentVersion: 3.0.0
                command:
                  command: run
                  arguments:
                    - test
                links:
                  - label: CI job
                    url: https://ci.com/job1
                  - label: GIT commit
                    url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
                tags:
                  - CI
                  - feature-branch
                values:
                  - name: branch
                    value: feature/one
                  - name: commitId
                    value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
                user: npm
                host: agent.gradle.com
                packageName: example-project
                hasFailed: true
                hasVerificationFailure: true
                hasNonVerificationFailure: true
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/npm-dependencies:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the dependencies of an npm build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetNpmDependencies
      summary: Get the dependencies of an npm build.
      description: This model is npm specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The dependencies of an npm build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpmDependencies'
              example:
                dependencies:
                  - scheme: pkg
                    type: npm
                    namespace: angular
                    name: common
                    version: 20.1.3
                    qualifiers:
                      repository_url: https://registry.npmjs.org/
                    purl: pkg:npm/%40angular/common@20.1.3?repository_url=https%3A%2F%2Fregistry.npmjs.org%2F
                    repository:
                      url: https://registry.npmjs.org/
                      type: npm
                      resolutionSource: remote
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/npm-network-activity:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the network activity of an npm build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetNpmNetworkActivity
      summary: Get the network activity of an npm build.
      description: This model is npm specific and cannot be requested for another build tool.  This model is only available starting with the Develocity npm agent version 3.0.0.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The network activity of an npm build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpmNetworkActivity'
              example:
                networkRequestCount: 10
                serialNetworkRequestTime: 1000
                wallClockNetworkRequestTime: 50
                fileDownloadSize: 1025
                fileDownloadCount: 8
                methods:
                  GET:
                    networkRequestCount: 10
                    serialNetworkRequestTime: 1000
                    fileDownloadSize: 1025
                    fileDownloadCount: 8
                    wallClockNetworkRequestTime: 50
                registries:
                  https://registry.npmjs.org/:
                    networkRequestCount: 10
                    serialNetworkRequestTime: 1000
                    fileDownloadSize: 1025
                    fileDownloadCount: 8
                    wallClockNetworkRequestTime: 50
                registryMethods:
                  GET https://registry.npmjs.org/:
                    networkRequestCount: 10
                    serialNetworkRequestTime: 1000
                    fileDownloadSize: 1025
                    fileDownloadCount: 8
                    wallClockNetworkRequestTime: 50
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/python-attributes:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of a Python build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetPythonAttributes
      summary: Get the attributes of a Python build.
      description: This model is Python specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The attributes of a Python build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PythonAttributes'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/builds/{id}/sbt-attributes:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildQuery
        explode: true
        description: The query parameters used to retrieve the attributes of an sbt build.
        schema:
          $ref: '#/components/schemas/BuildModelQuery'
    get:
      operationId: GetSbtAttributes
      summary: Get the attributes of an sbt build.
      description: This model is sbt specific and cannot be requested for another build tool.
      tags:
        - Builds
        - Develocity
      responses:
        '200':
          description: The attributes of an sbt build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SbtAttributes'
              example:
                id: 9r4d13f0r3v3r
                buildStartTime: 1637316480
                buildDuration: 11000
                sbtVersion: 1.10.7
                pluginVersion: 1.1.2
                rootProjectName: example-project
                requestedCommands:
                  - clean
                  - package
                hasFailed: true
                hasVerificationFailure: true
                hasNonVerificationFailure: true
                tags:
                  - CI
                  - feature-branch
                values:
                  - name: branch
                    value: feature/one
                  - name: commitId
                    value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
                links:
                  - label: CI job
                    url: https://ci.com/job1
                  - label: GIT commit
                    url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
                develocitySettings:
                  backgroundPublicationEnabled: true
                  buildOutputCapturingEnabled: true
                  resourceUsageCapturingEnabled: true
                buildOptions:
                  useCoursierEnabled: true
                  offlineModeEnabled: false
                  turboEnabled: true
                  parallelExecutionEnabled: true
                  semanticDbScalacPluginEnabled: false
                  interactiveModeEnabled: false
                environment:
                  username: sbt
                  operatingSystem: macOS 12.2.1 (x86_64)
                  numberOfCpuCores: 16
                  jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
                  jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
                  jvmMaxMemoryHeapSize: 16777216
                  jvmCharset: UTF-8
                  jvmLocale: English (United States)
                  publicHostname: agent.gradle.com
                  localHostname: sbt
                  localIpAddresses:
                    - 192.168.1.126
                    - 192.168.1.128
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/failures/builds/{id}:
    parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: The Build Scan ID.
      - in: query
        name: BuildFailuresQuery
        explode: true
        description: The query parameters used to retrieve the failures of a build.
        schema:
          $ref: '#/components/schemas/BuildFailuresQuery'
    get:
      operationId: GetBuildFailures
      summary: Get the failures of a build.
      description: |
        **<mark>Beta:</mark>** Returns the failures of a build, organized by build tool (Gradle, Maven, npm).
        The response structure includes nested objects for each build tool containing their respective failures.
      tags:
        - Failures
        - Develocity
      responses:
        '200':
          description: The failures of a build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildFailures'
              example:
                buildToolType: gradle
                gradle:
                  buildFailures:
                    - header: Task :codeNarcMain failed
                      message: |
                        A failure occurred while executing org.gradle.api.plugins.quality.internal.CodeNarcAction
                        > CodeNarc rule violations were found. See the report at: file:///Users/user/project/build/reports/codenarc/main.html
                      taskPath: ':codeNarcMain'
                      location: Build file 'build.gradle' line 3
                      stacktrace: |2
                                at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130)
                        Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing org.gradle.api.plugins.quality.internal.CodeNarcAction
                                at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:287)
                  testFailures:
                    - id:
                        workUnitName: ':test'
                        suiteName: example.ExampleTest
                        testName: failingTest
                      message: |
                        org.junit.ComparisonFailure: expected:<[1]> but was:<[2]>
                      stacktrace: |2
                                at example.ExampleTest.failingTest(ExampleTest.java:10)
                        Caused by: org.junit.ComparisonFailure: expected:<[1]> but was:<[2]>
                                at org.junit.ComparisonFailure.create(ComparisonFailure.java:41)
                maven: null
                npm: null
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
        '503':
          $ref: '#/components/responses/NotReadyError'
  /api/failures/groups:
    description: |
      The failure groups for the given query
    get:
      operationId: GetFailureGroups
      summary: Get a list of failure groups.
      description: |
        **<mark>Beta:</mark>** Returns the list of failure groups.
      tags:
        - Failures
        - Develocity
      parameters:
        - in: query
          name: query
          explode: true
          required: true
          description: The query parameters used to retrieve the list of failure groups.
          schema:
            $ref: '#/components/schemas/FailureGroupsQuery'
      responses:
        '200':
          description: A list of failure groups.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailureGroupsResponse'
              example:
                content:
                  - type: build
                    failureCount: 10
                    firstOccurrence: '2025-01-15T10:00:00Z'
                    lastOccurrence: '2025-06-10T15:30:00Z'
                    exampleFailure:
                      message: |
                        A failure occurred while executing org.gradle.api.plugins.quality.internal.CodeNarcAction
                        > CodeNarc rule violations were found. See the report at: file:///Users/user/project/build/reports/codenarc/main.html
                      relevantLog: |
                        Violation: Rule=VariableName P=2 Line=304 Msg=[Variable named isAtLeastGradle9_2 in class com.gradle.scan.server.test.vmcv.scan.tests.suitedetailsview.IntermediaryNodeFailureCrossVersionTest$IntermediaryNodeFailureCrossVersionTest_JUnit4 does not match the pattern [a-z][a-zA-Z0-9]*] Src=[def isAtLeastGradle9_2 = gradleVersion.isAtLeast(GradleVersions.V9_2_0)]
                    buildIds:
                      - bsfohatb6uw2u
                      - begl4bohhoy2i
                      - beo6lnhluzkbbg
                  - type: test
                    failureCount: 25
                    firstOccurrence: '2025-05-15T10:00:00Z'
                    lastOccurrence: '2025-07-11T15:30:00Z'
                    exampleFailure:
                      message: |
                        org.junit.ComparisonFailure: expected:<[1]> but was:<[2]>
                    buildIds:
                      - tsfohatb6uw2u
                      - teg4bohhoy2i
                      - teo6lnhluzkbbg
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /api/project-groups:
    get:
      operationId: ListProjectGroups
      summary: Lists access control project groups.
      description: |
        **<mark>Beta:</mark>** Returns a list of all project groups configured for project-level access control.
        If there are a lot of project groups, then all pages will need to be retrieved in order to retrieve the full list of project groups.
        The default number of project groups per page is 100.
      tags:
        - Projects
        - GradleEnterprise
        - Develocity
      parameters:
        - in: query
          name: PageQuery
          explode: true
          description: The page to fetch.
          schema:
            $ref: '#/components/schemas/PageQuery'
      responses:
        '200':
          description: A list of project groups configured for project-level access control.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectGroupsPage'
              example:
                content:
                  - id: some-project-group
                    displayName: Some Project Group
                    description: An example project group
                    projects:
                      - id: some-project
                      - id: another-project
                  - id: another-project-group
                    displayName: Another Project Group
                    description: Another example project group
                    projects:
                      - id: another-project
                page:
                  number: 1
                  size: 50
                  totalPages: 4
                  totalElements: 151
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/project-groups/{projectGroupId}:
    parameters:
      - in: path
        name: projectGroupId
        example: a-project-group
        schema:
          $ref: '#/components/schemas/ProjectGroupId'
        required: true
        description: The ID of the project group configured for project-level access control.
    get:
      operationId: GetProjectGroup
      summary: Get an access control project group.
      description: |
        **<mark>Beta:</mark>** Gets a specific project group configured for project-level access control.
      tags:
        - Projects
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The requested project group configured for project-level access control.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectGroup'
              example:
                id: some-project-group
                displayName: Some Project Group
                description: An example project group
                projects:
                  - id: some-project
                  - id: another-project
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    put:
      operationId: CreateOrUpdateProjectGroup
      summary: Create or update an access control project group.
      description: |
        **<mark>Beta:</mark>** Create or update a project group configured for project-level access control in Develocity.
        When updating, any optional fields that are omitted from the request, but were previously set on the project group, will be unset/removed.
        An existing project group's identifier cannot be updated.
        If the update contains a id that does not match the current id, then the operation will fail with a Bad Request response.
      tags:
        - Projects
        - GradleEnterprise
        - Develocity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectGroup'
            example:
              id: some-project-group
              displayName: Some Project Group
              description: An example project group
              projects:
                - id: some-project
                - id: another-project
      responses:
        '200':
          description: The project group was created or updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectGroup'
              example:
                id: some-project-group
                displayName: Some Project Group
                description: An example project group
                projects:
                  - id: some-project
                  - id: another-project
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    delete:
      operationId: DeleteProjectGroup
      summary: Delete an access control project group.
      description: |
        **<mark>Beta:</mark>** Delete a project group configured for project-level access control in Develocity.
      tags:
        - Projects
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The projectId referenced an existing project group and it was deleted.
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/projects:
    get:
      operationId: ListProjects
      summary: Lists access control projects.
      description: |
        **<mark>Beta:</mark>** Returns a paged list of projects configured for project-level access control.
        If there are a lot of projects, then all pages will need to be retrieved in order to retrieve the full list of projects.
        The default number of projects per page is 1,000.
      tags:
        - Projects
        - GradleEnterprise
        - Develocity
      parameters:
        - in: query
          name: PageQuery
          explode: true
          description: The page to fetch.
          schema:
            $ref: '#/components/schemas/PageQuery'
      responses:
        '200':
          description: A list of projects configured for project-level access control in Develocity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectsPage'
              example:
                content:
                  - id: some-project
                    displayName: Some Project
                    description: An example project
                  - id: another-project
                    displayName: Another Project
                    description: Another example project
                page:
                  number: 1
                  size: 100
                  totalPages: 4
                  totalElements: 351
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/projects/{projectId}:
    parameters:
      - in: path
        name: projectId
        example: a-project
        schema:
          $ref: '#/components/schemas/ProjectId'
        required: true
        description: The ID of the access control project.
    get:
      operationId: GetProject
      summary: Get an access control project.
      description: |
        **<mark>Beta:</mark>** Gets a specific project configured for project-level access control.
      tags:
        - Projects
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The requested project configured for project-level access control.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
              example:
                id: some-project
                displayName: Some Project
                description: An example project
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    put:
      operationId: CreateOrUpdateProject
      summary: Create or update an access control project.
      description: |
        **<mark>Beta:</mark>** Create or update a project configured for project-level access control in Develocity.
        When updating, any optional fields that are omitted from the request, but were previously set on the project, will be unset/removed.
        An existing project's identifier cannot be updated.
        If the update contains a id that does not match the current id, then the operation will fail with a Bad Request response.
      tags:
        - Projects
        - GradleEnterprise
        - Develocity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project'
            example:
              id: some-project
              displayName: Some Project
              description: An example project
      responses:
        '200':
          description: The project was created or updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
              example:
                id: some-project
                displayName: Some Project
                description: An example project
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/test-distribution/agent-pools:
    get:
      operationId: ListTestDistributionAgentPools
      summary: Lists Agent Pools.
      description: Returns a list of all Agent Pools.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The response contains a listing of all Agent Pools.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolPage'
              example:
                content:
                  - id: m4yfaq4a
                    name: abc-agents-pool
                    minimumSize: 10
                    maximumSize: 20
                    capabilities:
                      - os=linux
                      - jdk=11
                      - team-abc
                    orderIndex: 1
                    restrictAccessToProjectGroups: false
                    projectGroupIds: []
                  - id: dwc4whvi
                    name: def-agents-pool
                    minimumSize: 0
                    maximumSize: 10
                    capabilities:
                      - os=windows
                      - jdk=11
                    orderIndex: 2
                    restrictAccessToProjectGroups: true
                    projectGroupIds:
                      - project-group-a
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    post:
      operationId: CreateTestDistributionAgentPool
      summary: Create an Agent Pool.
      description: |
        Create a new Agent Pool in Develocity.
        The orderIndex element is optional and can be used to specify the priority order in which the Agent Pool is considered.
        When not specified, the Agent Pool will be added last.
        When specified, the Agent Pool will be added at the specified index and all other Agent Pools will be moved down.
        If the specified index is out of bounds, the Agent Pool will be added last with the orderIndex adjusted accordingly.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestDistributionAgentPoolConfiguration'
            example:
              name: abc-agents-pool
              minimumSize: 10
              maximumSize: 20
              capabilities:
                - os=linux
                - jdk=11
                - team-abc
              orderIndex: 1
              restrictAccessToProjectGroups: false
              projectGroupIds: []
      responses:
        '200':
          description: A new Agent Pool was created with the configuration specified in the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolConfigurationWithId'
              example:
                id: m4yfaq4a
                name: abc-agents-pool
                minimumSize: 10
                maximumSize: 20
                capabilities:
                  - os=linux
                  - jdk=11
                  - team-abc
                orderIndex: 1
                restrictAccessToProjectGroups: false
                projectGroupIds: []
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/test-distribution/agent-pools/{poolId}:
    parameters:
      - in: path
        name: poolId
        example: m4yfaq4a
        schema:
          $ref: '#/components/schemas/TestDistributionAgentPoolId'
        required: true
        description: The ID of the pool to view.
    get:
      operationId: GetTestDistributionAgentPool
      summary: View the properties of an Agent Pool
      description: View the identifier, capabilities and size of an Agent Pool.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The poolId referenced an existing Agent Pool whose configuration is described in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolConfigurationWithId'
              example:
                id: m4yfaq4a
                name: abc-agents-pool
                minimumSize: 10
                maximumSize: 20
                capabilities:
                  - os=linux
                  - jdk=11
                  - team-abc
                orderIndex: 1
                restrictAccessToProjectGroups: false
                projectGroupIds: []
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    put:
      operationId: CreateOrUpdateTestDistributionAgentPool
      summary: Create or update an Agent Pool.
      description: |
        Create a new Agent Pool in Develocity or update the configuration of an existing one.
        The orderIndex element is optional and can be used to specify the priority order in which the Agent Pool is considered.
        When not specified, the Agent Pool will be either added last on creation, or will not change position on update.
        When specified, the Agent Pool will be added at/moved to the specified index and all other Agent Pools will be moved down.
        If the specified index is out of bounds, the Agent Pool will be added last with the orderIndex adjusted accordingly.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestDistributionAgentPoolConfiguration'
            example:
              name: abc-agents-pool
              minimumSize: 10
              maximumSize: 20
              capabilities:
                - os=linux
                - jdk=11
                - team-abc
              orderIndex: 1
              restrictAccessToProjectGroups: false
              projectGroupIds: []
      responses:
        '200':
          description: The Agent Pool was created or its configuration was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolConfigurationWithId'
              example:
                id: m4yfaq4a
                name: abc-agents-pool
                minimumSize: 10
                maximumSize: 20
                capabilities:
                  - os=linux
                  - jdk=11
                  - team-abc
                orderIndex: 1
                restrictAccessToProjectGroups: false
                projectGroupIds: []
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    delete:
      operationId: DeleteTestDistributionAgentPool
      summary: Delete an Agent Pool.
      description: Delete an existing Agent Pool.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The poolId referenced an existing Agent Pool and it was deleted.
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/test-distribution/agent-pools/{poolId}/registration-keys:
    parameters:
      - in: path
        name: poolId
        example: m4yfaq4a
        schema:
          $ref: '#/components/schemas/TestDistributionAgentPoolId'
        required: true
        description: The ID of the pool to view.
    get:
      operationId: ListTestDistributionAgentPoolRegistrationKeys
      summary: Lists Test Distribution pool-specific agent registration keys.
      description: Returns a list of all Test Distribution pool-specific agent registration key prefixes.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The response contains a listing of the requested type of (active or revoked) Test Distribution pool-specific agent registration key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolRegistrationKeyPrefixPage'
              example:
                content:
                  - keyPrefix: am3mbm5kamztbmrmygym5kamct
                    createdAt: '2021-01-01T12:59:59Z'
                    lastUsedAt: '2021-05-03T10:11:02Z'
                    lastUsedBy: agent1.localhost
                  - keyPrefix: yw3zbwjtnwthbxp3ym6ybxlnew
                    createdAt: '2021-04-20T13:21:43Z'
                    revokedAt: '2022-10-12T11:22:33Z'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    post:
      operationId: GenerateTestDistributionAgentPoolRegistrationKey
      summary: Generate a new Test Distribution pool-specific agent registration key.
      description: Generate a new Test Distribution pool-specific agent registration key to connect agents and query the agent pool API.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestDistributionAgentPoolRegistrationKeyDescription'
            example:
              description: Created by user-x for testing
      responses:
        '200':
          description: A new registration key was successfully generated and contained in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolRegistrationKey'
              example:
                key: 46rhyue2hltfwcx36qw7gad74lar4f2clb6a4qo5a433zzx7aqwq
                description: Created by user-x for testing
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/test-distribution/agent-pools/{poolId}/registration-keys/{keyPrefix}:
    parameters:
      - in: path
        name: poolId
        example: m4yfaq4a
        schema:
          $ref: '#/components/schemas/TestDistributionAgentPoolId'
        required: true
        description: The ID of the pool to view.
      - in: path
        name: keyPrefix
        example: riux3fkajs6ivtajxbrunelywk
        schema:
          type: string
          minLength: 26
          maxLength: 26
          pattern: ^[a-z2-7]{26}$
        required: true
        description: The prefix of the Test Distribution pool-specific agent registration key.
    get:
      operationId: GetTestDistributionAgentPoolRegistrationKey
      summary: Get a Test Distribution pool-specific agent registration keyPrefix information.
      description: Returns information about a Test Distribution pool-specific agent registration keyPrefix.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The response contains information about the requested Test Distribution pool-specific agent registration keyPrefix.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolRegistrationKeyPrefix'
              example:
                keyPrefix: am3mbm5kamztbmrmygym5kamct
                description: Created by user-x for testing
                createdAt: '2021-01-01T12:59:59Z'
                lastUsedAt: '2021-05-03T10:11:02Z'
                lastUsedBy: agent1.localhost
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    put:
      operationId: InsertTestDistributionAgentPoolRegistrationKey
      summary: Insert a specific Test Distribution pool-specific agent registration key.
      description: |
        Inserts a specific Test Distribution pool-specific agent registration key to connect agents and query the agent pool API.
        If a key with the same prefix but different key already exists (regardless of which pool it belongs to), it will return 400.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestDistributionAgentPoolRegistrationKey'
            example:
              key: 46rhyue2hltfwcx36qw7gad74lar4f2clb6a4qo5a433zzx7aqwq
              description: Created by user-x for testing
      responses:
        '200':
          description: The registration key was successfully inserted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolRegistrationKeyPrefix'
              example:
                keyPrefix: am3mbm5kamztbmrmygym5kamct
                description: Created by user-x for testing
                createdAt: '2021-01-01T12:59:59Z'
                lastUsedAt: '2021-05-03T10:11:02Z'
                lastUsedBy: agent1.localhost
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
    delete:
      operationId: RevokeTestDistributionAgentPoolRegistrationKey
      summary: Revoke a Test Distribution pool-specific agent registration key.
      description: |
        Revoke the Test Distribution pool-specific agent registration key for the given prefix which uniquely identifies a Test Distribution pool-specific agent registration key.
        A revoked key can no longer be used to connect agents, but it will still be queryable and returned in the list.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The registration key was revoked successfully.
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/test-distribution/agent-pools/{poolId}/status:
    parameters:
      - in: path
        name: poolId
        example: m4yfaq4a
        schema:
          $ref: '#/components/schemas/TestDistributionAgentPoolId'
        required: true
        description: The ID of the pool to view.
    get:
      operationId: GetTestDistributionAgentPoolStatus
      summary: View the status of an Agent Pool
      description: |
        View the status of an Agent Pool, such as its current size.
        To access this endpoint the user requires the `Test Distribution` permission.
      tags:
        - TestDistribution
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          description: The poolId referenced an existing Agent Pool whose status is described in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestDistributionAgentPoolStatus'
              example:
                id: m4yfaq4a
                name: abc-agents-pool
                minimumSize: 10
                maximumSize: 20
                connectedAgents: 15
                idleAgents: 5
                desiredAgents: 10
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/UnauthorizedOrNotFoundError'
  /api/tests/build/{id}:
    description: |
      The tests build endpoint is used to retrieve the test execution information for a specific build.
    get:
      operationId: GetBuildTests
      summary: Get tests executed in the given build.
      description: Retrieves summary of executed tests and containers, as well as the detailed information about each test execution in each invoked test work unit.
      tags:
        - Tests
        - Develocity
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
          description: The Build Scan ID.
        - in: query
          name: query
          explode: true
          required: true
          description: The query parameters used to retrieve test execution data for a build.
          schema:
            $ref: '#/components/schemas/BuildTestsQuery'
      responses:
        '200':
          description: Test executions in the given build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildTestsResponse'
              example:
                summary:
                  duration:
                    total: 150
                    serial: 150
                  testCasesOutcomeDistribution:
                    total: 3
                    failed: 1
                    passed: 1
                    flaky: 1
                    skipped: 0
                    notSelected: 0
                  testContainersOutcomeDistribution:
                    total: 2
                    failed: 0
                    passed: 2
                    flaky: 0
                    skipped: 0
                    notSelected: 0
                workUnits:
                  - name: ':test'
                    duration:
                      total: 150
                      own: 50
                      serial: 150
                    outcome: failed
                    tests:
                      - name: JUnit Jupiter
                        duration:
                          total: 100
                          own: 50
                          serial: 100
                        outcome:
                          overall: failed
                          own: passed
                          children: failed
                        executions:
                          - duration:
                              total: 60
                              own: 20
                              serial: 60
                            outcome:
                              overall: failed
                              own: passed
                              children: failed
                          - duration:
                              total: 40
                              own: 10
                              serial: 40
                            outcome:
                              overall: failed
                              own: passed
                              children: failed
                        children:
                          - name: org.example.TestContainer
                            duration:
                              total: 70
                              own: 0
                              serial: 70
                            outcome:
                              overall: failed
                              own: passed
                              children: failed
                            executions:
                              - duration:
                                  total: 40
                                  own: 0
                                  serial: 40
                                outcome:
                                  overall: failed
                                  own: passed
                                  children: failed
                              - duration:
                                  total: 30
                                  own: 0
                                  serial: 30
                                outcome:
                                  overall: failed
                                  own: passed
                                  children: failed
                            children:
                              - name: successfulTest
                                duration:
                                  total: 10
                                outcome:
                                  overall: passed
                                executions:
                                  - duration:
                                      total: 10
                                    outcome:
                                      overall: passed
                                children: []
                              - name: failingTest
                                duration:
                                  total: 20
                                outcome:
                                  overall: failed
                                executions:
                                  - duration:
                                      total: 10
                                    outcome:
                                      overall: failed
                                  - duration:
                                      total: 10
                                    outcome:
                                      overall: failed
                                children: []
                              - name: flakyTest
                                duration:
                                  total: 40
                                outcome:
                                  overall: flaky
                                executions:
                                  - duration:
                                      total: 20
                                    outcome:
                                      overall: failed
                                  - duration:
                                      total: 20
                                    outcome:
                                      overall: passed
                                children: []
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /api/tests/cases:
    description: |
      The test cases endpoint is used to retrieve the list of test cases that have at least one instance of the given test outcomes in the given timeframe. 
      It returns information about the test cases inside the given container.
    get:
      operationId: GetTestCases
      summary: Get a list of test cases.
      description: Retrieves the list of test cases of a single container.
      tags:
        - Tests
        - Develocity
      parameters:
        - in: query
          name: query
          explode: true
          required: true
          description: The query parameters used to retrieve the list of test cases.
          schema:
            $ref: '#/components/schemas/TestCasesQuery'
      responses:
        '200':
          description: A list of test cases.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestsResponse'
              example:
                content:
                  - name: testCase1
                    workUnits:
                      - gradle:
                          projectName: acme
                          taskPath: ':test'
                    outcomeDistribution:
                      passed: 1
                      failed: 2
                      skipped: 3
                      flaky: 4
                      notSelected: 5
                      total: 15
                    buildScanIdsByOutcome:
                      passed:
                        - ssfohatb6uw2u
                      failed:
                        - qegl4bohhoy2i
                        - eo6lnhluzkbbg
                      skipped:
                        - 6jsgeu7deyisu
                        - nyg4nlhts6ez2
                        - 5qpe6oluq6nkm
                      flaky:
                        - milutmob6ayt6
                        - es5izuj3d3euw
                        - q7hrgly7txcoa
                        - lo7xqd74pkepk
                      notSelected:
                        - q3cz4ajrspqe4
                        - kpmkaegons4ls
                        - t53u7u63j35uq
                        - wifudssaudxyo
                        - k6cgdkvi574u4
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /api/tests/containers:
    description: |
      The tests endpoint is used to retrieve the list of tests that have at least one instance of the given test outcomes in the given timeframe.
      It works on test containers, such as test classes, and not individual tests cases.
    get:
      operationId: GetTestContainers
      summary: Get a list of test containers.
      description: Returns the list of test containers.
      tags:
        - Tests
        - Develocity
      parameters:
        - in: query
          name: query
          explode: true
          required: true
          description: The query parameters used to retrieve the list of test containers.
          schema:
            $ref: '#/components/schemas/TestContainersQuery'
      responses:
        '200':
          description: A list of test containers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestsResponse'
              example:
                content:
                  - name: com.example.Test
                    workUnits:
                      - gradle:
                          projectName: acme
                          taskPath: ':test'
                    outcomeDistribution:
                      passed: 1
                      failed: 2
                      skipped: 3
                      flaky: 4
                      notSelected: 5
                      total: 15
                    buildScanIdsByOutcome:
                      passed:
                        - ssfohatb6uw2u
                      failed:
                        - qegl4bohhoy2i
                        - eo6lnhluzkbbg
                      skipped:
                        - 6jsgeu7deyisu
                        - nyg4nlhts6ez2
                        - 5qpe6oluq6nkm
                      flaky:
                        - milutmob6ayt6
                        - es5izuj3d3euw
                        - q7hrgly7txcoa
                        - lo7xqd74pkepk
                      notSelected:
                        - q3cz4ajrspqe4
                        - kpmkaegons4ls
                        - t53u7u63j35uq
                        - wifudssaudxyo
                        - k6cgdkvi574u4
                  - name: com.example.MavenTest
                    workUnits:
                      - maven:
                          groupId: com.example
                          artifactId: maven-test
                          goalName: surefire:test
                          executionId: default-execution
                    outcomeDistribution:
                      passed: 0
                      failed: 0
                      skipped: 0
                      flaky: 1
                      notSelected: 0
                      total: 1
                    buildScanIdsByOutcome:
                      passed: []
                      failed: []
                      skipped: []
                      flaky:
                        - rvta3gxepioxu
                      notSelected: []
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /api/version:
    get:
      operationId: GetVersion
      summary: Provides the version of Develocity.
      description: This endpoint can be accessed by any authenticated user.
      tags:
        - Meta
        - GradleEnterprise
        - Develocity
      responses:
        '200':
          $ref: '#/components/responses/SuccessfulVersionResponse'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
components:
  securitySchemes:
    DevelocityAccessKeyOrToken:
      type: http
      scheme: bearer
      bearerFormat: Bearer <<Develocity Access Key or Token>>
      description: |
        All requests require a Develocity access key or token as a bearer token. 
        Given an access key of `l3an7wk3j4ze5v4mi7rvgjf2p7g44nvlswg4cpvdonjs7rzd4kmq`, the required header is `Authorization: Bearer l3an7wk3j4ze5v4mi7rvgjf2p7g44nvlswg4cpvdonjs7rzd4kmq`.

        Please consult the [Develocity API User Manual](https://gradle.com/help/api-access-control) for guidance on how to provision access keys or tokens and check user permissions.
  responses:
    ForbiddenError:
      description: The authenticated user has insufficient permissions.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            ForbiddenUserResponse:
              $ref: '#/components/examples/ForbiddenUserExample'
    SuccessfulVersionResponse:
      description: Successful version response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DevelocityVersion'
    BadRequestError:
      description: The request cannot be fulfilled due to a problem.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            RequestValidationApiProblemResponse:
              $ref: '#/components/examples/RequestValidationApiProblemExample'
    UnauthenticatedError:
      description: Something was wrong with the request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            RequestValidationApiProblemResponse:
              $ref: '#/components/examples/UnauthenticatedExample'
    NotFoundError:
      description: The referenced resource either does not exist or the permissions to know about it are missing.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            NotFoundResponse:
              $ref: '#/components/examples/NotFoundApiProblemExample'
    UnexpectedError:
      description: The server encountered an unexpected error.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            UnexpectedErrorResponse:
              $ref: '#/components/examples/UnexpectedErrorApiProblemExample'
    NotReadyError:
      description: The server is not ready to handle the request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            IngestionNotCompletedResponse:
              $ref: '#/components/examples/IngestionNotCompletedApiProblemExample'
    NodeNotSignedInError:
      description: The node was not signed in with Develocity.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            NodeNotSignedInResponse:
              $ref: '#/components/examples/NodeNotSignedInProblemExample'
    UnauthorizedOrNotFoundError:
      description: No API key was specified in the request, the key has been revoked, or the user bearing the key lacks permissions for this operation.
    AccessTokenForbidden:
      description: The current user or authenticating access token does not have sufficient access or lifetime to create the requested access token.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            MissingPermissionResponse:
              value:
                type: urn:gradle:enterprise:api:problems:forbidden
                title: Missing requested permission.
                detail: The permissions [administerGe] were requested for the access token, but were not granted to this user.
                status: 403
            MissingProjectResponse:
              value:
                type: urn:gradle:enterprise:api:problems:forbidden
                title: Missing requested projects.
                detail: The projects [project-a, project-b] were requested for the access token, but were not assigned to this user.
                status: 403
            InsufficientLifetimeResponse:
              value:
                type: urn:gradle:enterprise:api:problems:forbidden
                title: Requested expiration exceeds current.
                detail: The access token used to authenticate this request expires at 2024-02-14T01:44:51.225701Z, which is sooner than the requested expiration time of PT12H from now.
                status: 403
    BadRequest:
      description: The request body is malformed or contains invalid values for at least one of the properties.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
          examples:
            CapabilityValidationProblemResponse:
              $ref: '#/components/examples/CapabilityValidationProblemExample'
  schemas:
    DevelocityVersion:
      title: DevelocityVersion
      type: object
      allOf:
        - $ref: '#/components/schemas/GradleEnterpriseVersion'
    GradleEnterpriseVersion:
      title: GradleEnterpriseVersion
      type: object
      description: |
        **This object is deprecated, use `DevelocityVersion` instead.**
      deprecated: true
      required:
        - string
        - year
        - release
        - patch
      properties:
        string:
          type: string
          description: The complete version string of format `YEAR.RELEASE.PATCH`, where the patch component is omitted when `0` (e.g. `2022.3`, `2022.3.1`).
        year:
          type: integer
          description: The gregorian calendar year of the release.
        release:
          type: integer
          description: The sequence number of the release for that year, starting with 1.
          minimum: 1
        patch:
          type: integer
          description: The patch level of the release, starting with 0.
          minimum: 0
      example:
        '2022.3':
          value:
            string: '2022.3'
            year: 2022
            release: 3
            patch: 0
        2022.3.1:
          value:
            string: 2022.3.1
            year: 2022
            release: 3
            patch: 1
    ApiProblem:
      type: object
      description: |
        Response detailing why a request was rejected.
        Adheres to the [RFC-7807](https://datatracker.ietf.org/doc/html/rfc7807) standard (colloquially known as "Problem JSON") for the response format.
      required:
        - type
        - title
        - status
      properties:
        status:
          type: integer
          description: HTTP status code of the problem response.
        type:
          type: string
          description: A URN (Uniform Resource Name) identifying the type of the problem.
        title:
          type: string
          description: The underlying reason for the problem.
        detail:
          type: string
          description: A longer and comprehensive description of the problem. May be `null` if not available.
          nullable: true
    ProjectId:
      type: string
      description: The unique identifier for the project. Must not contain whitespace.
      minLength: 1
      maxLength: 256
      pattern: ^\S+$
    Permission:
      type: string
      description: A permission [config value](https://gradle.com/help/helm-admin-permissions).
      minLength: 1
      maxLength: 256
      pattern: ^\S+$
    ReplicationConfiguration:
      description: Cached data replication configuration description. May be `null` if replication is not configured.
      type: object
      nullable: true
      required:
        - source
        - preemptive
      properties:
        source:
          type: string
          description: The name of the Build Cache Node which is the source of data.
        preemptive:
          type: boolean
          description: Indicates if preemptive replication is enabled from the source.
    NodeConfiguration:
      description: A Build Cache Node configuration description.
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          description: Indicates if the Build Cache Node is enabled.
        replication:
          $ref: '#/components/schemas/ReplicationConfiguration'
    KeySecretPair:
      description: A Build Cache Node key and secret pair.
      type: object
      required:
        - key
        - secret
      properties:
        key:
          type: string
          description: A unique identifier for the Build Cache Node in Develocity.
        secret:
          type: string
          description: The secret associated with the Build Cache Node.
    BuildModelName:
      description: Build model names that can be requested when fetching builds.
      type: string
      enum:
        - gradle-artifact-transform-executions
        - gradle-attributes
        - gradle-build-cache-performance
        - gradle-build-profile-overview
        - gradle-configuration-cache
        - gradle-deprecations
        - gradle-dependencies
        - gradle-network-activity
        - gradle-plugins
        - gradle-projects
        - gradle-resource-usage
        - gradle-test-performance
        - maven-attributes
        - maven-build-cache-performance
        - maven-build-profile-overview
        - maven-dependencies
        - maven-dependency-resolution
        - maven-extensions
        - maven-modules
        - maven-plugins
        - maven-resource-usage
        - maven-test-performance
        - bazel-attributes
        - bazel-critical-path
        - npm-attributes
        - npm-dependencies
        - npm-network-activity
        - python-attributes
        - sbt-attributes
    BuildModelNames:
      description: |
        The list of build models to return in the response for each build.
        If not provided, no models are returned.
      type: array
      items:
        $ref: '#/components/schemas/BuildModelName'
    BuildAttributesValue:
      type: object
      description: A Build Scan value.
      required:
        - name
      properties:
        name:
          type: string
          description: The name of the Build Scan value.
        value:
          type: string
          description: The value of the Build Scan value. `null` if the Build Scan value is not set.
    BuildAttributesLink:
      type: object
      description: A Build Scan link.
      required:
        - label
        - url
      properties:
        label:
          type: string
          description: The label of the Build Scan link.
        url:
          type: string
          description: The url of the Build Scan link.
    GradleDevelocitySettings:
      type: object
      description: Settings for Develocity.
      properties:
        backgroundPublicationEnabled:
          type: boolean
          description: Indicates whether background Build Scan publication is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.4`. See https://gradle.com/help/gradle-plugin-configuring-background-uploading.
          nullable: true
        buildOutputCapturingEnabled:
          type: boolean
          description: Indicates whether build logging output capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.7`. See https://gradle.com/help/gradle-plugin-capturing-build-and-test-outputs.
          nullable: true
        fileFingerprintCapturingEnabled:
          type: boolean
          description: Indicates whether file fingerprint capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `2.1`. See https://gradle.com/help/gradle-plugin-capturing-task-input-files/.
          nullable: true
        testOutputCapturingEnabled:
          type: boolean
          description: Indicates whether test logging output capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.7`. See https://gradle.com/help/gradle-plugin-capturing-build-and-test-outputs.
          nullable: true
        resourceUsageCapturingEnabled:
          type: boolean
          description: Indicates whether resource usage capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.18`. See https://gradle.com/help/gradle-plugin-capturing-resource-usage.
          nullable: true
        taskInputsFileCapturingEnabled:
          deprecated: true
          type: boolean
          description: |
            Indicates whether task input file snapshots capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `2.1`. See https://gradle.com/help/gradle-plugin-capturing-task-input-files.
            **This property is deprecated, use `fileFingerprintCapturingEnabled` instead.**
          nullable: true
    GradleBuildOptions:
      type: object
      description: Gradle build options for this build.
      required:
        - configurationOnDemandEnabled
        - continuousBuildEnabled
        - continueOnFailureEnabled
        - daemonEnabled
        - dryRunEnabled
        - excludedTasks
        - maxNumberOfGradleWorkers
        - offlineModeEnabled
        - parallelProjectExecutionEnabled
        - refreshDependenciesEnabled
        - rerunTasksEnabled
      properties:
        buildCacheEnabled:
          type: boolean
          description: Indicates whether the build cache is enabled for the build. `null` if Gradle version is < `3.1` or Develocity Gradle plugin version is < `1.3`. See https://docs.gradle.org/current/javadoc/org/gradle/StartParameter.html#isBuildCacheEnabled--.
          nullable: true
        configurationCacheEnabled:
          type: boolean
          description: Indicates whether the configuration cache is enabled for the build. `null` if Gradle version is < `6.6` or Develocity Gradle plugin version is < `3.4`. See https://docs.gradle.org/current/userguide/configuration_cache.html.
          nullable: true
        configurationOnDemandEnabled:
          type: boolean
          description: Indicates whether configuration on demand mode is enabled for the build. See https://docs.gradle.org/current/userguide/configuration_on_demand.html.
        continuousBuildEnabled:
          type: boolean
          description: Indicates whether continuous build mode is running for the build. See https://docs.gradle.org/current/userguide/command_line_interface.html#sec:continuous_build.
        continueOnFailureEnabled:
          type: boolean
          description: Indicates whether continue on failure mode is set for the build. See https://docs.gradle.org/current/userguide/command_line_interface.html#sec:continue_build_on_failure.
        daemonEnabled:
          type: boolean
          description: Indicates whether the build is run with the Gradle Daemon. See https://docs.gradle.org/current/userguide/gradle_daemon.html.
        dryRunEnabled:
          type: boolean
          description: Indicates whether the dry run flag is set for the build. See https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_execution_options.
        excludedTasks:
          type: array
          items:
            type: string
          description: The list of excluded tasks. See https://docs.gradle.org/current/userguide/command_line_interface.html#sec:excluding_tasks_from_the_command_line.
        fileSystemWatchingEnabled:
          type: boolean
          description: Indicates whether file system watching is enabled for the build. `null` if Gradle version is < `6.6` or Develocity Gradle plugin version is < `3.4`. See https://docs.gradle.org/current/userguide/file_system_watching.html.
          nullable: true
        isolatedProjectsEnabled:
          type: boolean
          description: Indicates whether the 'Isolated Projects' feature was enabled for the build. May be `null` if Gradle version is < `8.3` or Develocity Gradle plugin version is < `3.15`. See https://docs.gradle.org/current/userguide/isolated_projects.html.
          nullable: true
        maxNumberOfGradleWorkers:
          type: integer
          description: The maximum number of build workers used to run the build. See https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_performance.
        offlineModeEnabled:
          type: boolean
          description: Indicates whether the offline mode is set for the build. See https://docs.gradle.org/current/userguide/dependency_caching.html#sec:controlling-dependency-caching-command-line.
        parallelProjectExecutionEnabled:
          type: boolean
          description: Indicates whether parallel project execution is enabled for the build. See https://docs.gradle.org/current/userguide/configuration_on_demand.html#sec:parallel_execution.
        refreshDependenciesEnabled:
          type: boolean
          description: Indicates whether the build is set to refresh all dependencies in the dependency cache. See https://docs.gradle.org/current/userguide/dependency_caching.html#sec:refreshing-dependencies.
        rerunTasksEnabled:
          type: boolean
          description: Indicates whether the build is forced to run all the tasks, ignoring any up-to-date checks. https://docs.gradle.org/current/userguide/command_line_interface.html#sec:rerun_tasks.
    BuildAttributesEnvironment:
      type: object
      description: The environment where the build is executed.
      required:
        - operatingSystem
        - numberOfCpuCores
        - jreVersion
        - jvmVersion
        - jvmMaxMemoryHeapSize
        - jvmLocale
      properties:
        username:
          type: string
          description: Operating system username of the build user. `null` if no username is captured.
          nullable: true
        operatingSystem:
          type: string
          description: Operating system of the build machine.
        numberOfCpuCores:
          type: integer
          description: Number of cores available to the build JVM.
        jreVersion:
          type: string
          description: Version of the Java runtime executing the build.
        jvmVersion:
          type: string
          description: Version of the Java Virtual Machine executing the build.
        jvmMaxMemoryHeapSize:
          type: integer
          format: int64
          description: Maximum heap memory available to the build JVM in bytes.
        jvmCharset:
          type: string
          description: The default charset of the JVM executing the build. `null` if capturing is not possible.
          nullable: true
        jvmLocale:
          type: string
          description: The locale of the JVM executing the build.
        publicHostname:
          type: string
          description: The hostname of the build machine, as seen on the network. `null` if capturing is not possible.
          nullable: true
        localHostname:
          type: string
          description: The hostname of the build machine, as specified by itself. `null` if capturing is not possible.
          nullable: true
        localIpAddresses:
          type: array
          items:
            type: string
          description: The local IP addresses of the build machine. `null` if capturing is not possible.
          nullable: true
    GradleGradleEnterpriseSettings:
      type: object
      description: |
        **This property is deprecated, use `develocitySettings` instead.**
        Settings for Develocity.
      deprecated: true
      properties:
        backgroundPublicationEnabled:
          type: boolean
          description: Indicates whether background Build Scan publication is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.4`. See https://gradle.com/help/gradle-plugin-configuring-background-uploading.
          nullable: true
        buildOutputCapturingEnabled:
          type: boolean
          description: Indicates whether build logging output capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.7`. See https://gradle.com/help/gradle-plugin-capturing-build-and-test-outputs.
          nullable: true
        taskInputsFileCapturingEnabled:
          type: boolean
          description: Indicates whether task input file snapshots capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `2.1`. See https://gradle.com/help/gradle-plugin-capturing-task-input-files.
          nullable: true
        testOutputCapturingEnabled:
          type: boolean
          description: Indicates whether test logging output capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.7`. See https://gradle.com/help/gradle-plugin-capturing-build-and-test-outputs.
          nullable: true
        resourceUsageCapturingEnabled:
          type: boolean
          description: Indicates whether resource usage capturing is enabled for the build. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `3.18`. See https://gradle.com/help/gradle-plugin-capturing-resource-usage.
          nullable: true
    GradleAttributes:
      type: object
      description: The attributes of a Gradle build.
      required:
        - id
        - buildStartTime
        - buildDuration
        - gradleVersion
        - pluginVersion
        - requestedTasks
        - hasFailed
        - tags
        - values
        - links
        - develocitySettings
        - buildOptions
        - environment
        - gradleEnterpriseSettings
      properties:
        id:
          type: string
          description: The Build Scan ID.
        buildStartTime:
          type: integer
          format: int64
          description: The time when the build starts, as milliseconds since Epoch.
        buildDuration:
          type: integer
          format: int64
          description: The duration of the build, as milliseconds.
        gradleVersion:
          type: string
          description: The Gradle version used.
        pluginVersion:
          type: string
          description: The Develocity Gradle plugin version used.
        rootProjectName:
          type: string
          description: The root project name. `null` in case of very early build failure.
          nullable: true
        requestedTasks:
          type: array
          items:
            type: string
          description: The list of requested tasks.
        hasFailed:
          type: boolean
          description: True when the build fails, false otherwise.
        hasVerificationFailure:
          type: boolean
          description: |
            Set only if the build fails: true when the build has at least one failure classified as "Verification", false otherwise.  The Verification classification is meant for failures that are expected within a standard application development lifecycle. They typically represent a problem with the developer’s inputs to the build such as the source code.
        hasNonVerificationFailure:
          type: boolean
          description: |
            Set only if the build failed: true when the build has at least one failure classified as "Non-verification", false otherwise.  The Non-verification classification is meant for failures that are typically not expected within a standard application development lifecycle, such as build configuration failures, dependency resolution failures, and infrastructure failures.
        tags:
          type: array
          items:
            type: string
          description: The list of Build Scan tags.
        values:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesValue'
          description: The list of Build Scan values.
        links:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesLink'
          description: The list of Build Scan links.
        develocitySettings:
          $ref: '#/components/schemas/GradleDevelocitySettings'
        buildOptions:
          $ref: '#/components/schemas/GradleBuildOptions'
        environment:
          $ref: '#/components/schemas/BuildAttributesEnvironment'
        gradleEnterpriseSettings:
          $ref: '#/components/schemas/GradleGradleEnterpriseSettings'
          description: |
            **This property is deprecated, use `develocitySettings` instead.**
            Settings for Develocity.
          deprecated: true
    BuildTestPerformanceTests:
      type: object
      description: Test-related data of a build.
      required:
        - testClassesCount
      properties:
        testClassesCount:
          type: integer
          description: Number of test classes of a build.
    TestAccelerationFeatureUsageStatus:
      type: string
      enum:
        - unavailable
        - disabled
        - enabled
      description: |
        Develocity extension status of a build / work unit:
          * `unavailable` - Feature status is unknown (e.g. for older Gradle plugin / Maven extension versions) or feature could not be used due to an unexpected error
          * `disabled` - The extension was enabled on none of the tasks in the build / for the task in question
          * `enabled` - The extension was enabled on at least one of the tasks in the build / for the task in question**
    PredictiveTestSelectionMode:
      type: string
      enum:
        - relevant
        - remaining
      description: |
        Develocity PTS selection mode of a build:
          * `relevant` - PTS selects only relevant tests (default)
          * `remaining` - PTS runs alls remaining tests
    TestPerformanceBuildPredictiveTestSelectionUsage:
      type: object
      description: Groups PTS usage data (build level).
      required:
        - status
        - selectionMode
        - wallClockSavings
        - serialTimeSavings
      properties:
        status:
          $ref: '#/components/schemas/TestAccelerationFeatureUsageStatus'
        selectionMode:
          $ref: '#/components/schemas/PredictiveTestSelectionMode'
        wallClockSavings:
          type: integer
          format: int64
          description: The wall-clock savings in milliseconds, which can be negative. Negative values indicate that it took more time to make the Predictive Test Selection request, than it would have taken to directly execute the tests.
          nullable: true
        serialTimeSavings:
          type: integer
          format: int64
          description: The serial time savings in milliseconds. This is the sum of test duration estimates from not selected test classes.
          nullable: true
    TestPerformanceBuildPredictiveTestSelectionSimulationData:
      type: object
      description: Data related to a Predictive Test Selection simulation (build level).
      required:
        - wallClockSavingsPotential
        - serialTimeSavingsPotential
        - workUnitFailuresPredictedCount
        - workUnitFailuresMissedCount
        - avoidableTestClassesCount
        - unavoidableTestClassesCount
        - testClassesCountSelectedDueToInsufficientData
      properties:
        wallClockSavingsPotential:
          type: integer
          format: int64
          description: The PTS wallclock savings potential in milliseconds.
        serialTimeSavingsPotential:
          type: integer
          format: int64
          description: The PTS serial time savings potential in milliseconds.
        workUnitFailuresPredictedCount:
          type: integer
          format: int64
          description: The number of predicted task failures.
        workUnitFailuresMissedCount:
          type: integer
          format: int64
          description: The number of task failures that were missed in the prediction.
        avoidableTestClassesCount:
          type: integer
          format: int64
          description: The number test classes that can be avoided by PTS.
        unavoidableTestClassesCount:
          type: integer
          format: int64
          description: The number of test classes that cannot be avoided by PTS.
        testClassesCountSelectedDueToInsufficientData:
          type: integer
          format: int64
          description: The number of test classes that were selected because of insufficient data.
    TestPerformanceBuildPredictiveTestSelectionSimulation:
      type: object
      description: Groups data from the three PTS simulation profiles (build level).
      required:
        - conservative
        - standard
        - fast
      properties:
        conservative:
          $ref: '#/components/schemas/TestPerformanceBuildPredictiveTestSelectionSimulationData'
        standard:
          $ref: '#/components/schemas/TestPerformanceBuildPredictiveTestSelectionSimulationData'
        fast:
          $ref: '#/components/schemas/TestPerformanceBuildPredictiveTestSelectionSimulationData'
    TestPerformanceBuildPredictiveTestSelection:
      type: object
      description: Predictive Test Selection related data of a build.
      required:
        - usage
      properties:
        usage:
          $ref: '#/components/schemas/TestPerformanceBuildPredictiveTestSelectionUsage'
        simulation:
          $ref: '#/components/schemas/TestPerformanceBuildPredictiveTestSelectionSimulation'
    TestPerformanceBuildTestDistribution:
      type: object
      description: Test Distribution related data of a build.
      required:
        - usageStatus
        - wallClockSavings
      properties:
        usageStatus:
          $ref: '#/components/schemas/TestAccelerationFeatureUsageStatus'
        wallClockSavings:
          type: integer
          format: int64
          description: The wall-clock savings in milliseconds, which can be negative. Negative values indicate that it took more time to make the Test Distribution request, than it would have taken to directly execute the tests.
          nullable: true
    TestPerformanceBuildTestAcceleration:
      type: object
      description: Test acceleration data of a build.
      required:
        - predictiveTestSelection
        - testDistribution
        - wallClockSavings
      properties:
        predictiveTestSelection:
          $ref: '#/components/schemas/TestPerformanceBuildPredictiveTestSelection'
        testDistribution:
          $ref: '#/components/schemas/TestPerformanceBuildTestDistribution'
        wallClockSavings:
          type: integer
          format: int64
          description: The wall-clock savings in milliseconds, which can be negative. Negative values indicate that it took more time to make the test acceleration requests, than it would have taken to directly execute the tests.
          nullable: true
    WorkUnitTestPerformanceTests:
      type: object
      description: Test-related data of a task/goal.
      required:
        - failedTestClassesCount
        - testClassesCount
      properties:
        failedTestClassesCount:
          type: integer
          description: Number of failed test classes of a task/goal.
        testClassesCount:
          type: integer
          description: Number of test classes of a task/goal.
    TestPerformanceWorkUnitPredictiveTestSelectionUsage:
      type: object
      description: Predictive Test Selection related data of a work unit.
      required:
        - status
        - selectionMode
        - wallClockSavings
        - serialTimeSavings
        - nonSelectedTestClassesCount
      properties:
        status:
          $ref: '#/components/schemas/TestAccelerationFeatureUsageStatus'
        selectionMode:
          $ref: '#/components/schemas/PredictiveTestSelectionMode'
        wallClockSavings:
          type: integer
          format: int64
          description: The wall-clock savings in milliseconds, which can be negative. Negative values indicate that it took more time to make the Predictive Test Selection request, than it would have taken to directly execute the tests.
          nullable: true
        serialTimeSavings:
          type: integer
          format: int64
          description: The serial time savings in milliseconds. This is the sum of test duration estimates from not selected test classes.
          nullable: true
        nonSelectedTestClassesCount:
          type: integer
          description: The number of test classes that have not been selected by Predictive Test Selection. Null if Predictive Test Selection was disabled / unavailable.
          nullable: true
    TestPerformanceWorkUnitPredictiveTestSelectionSimulationData:
      type: object
      description: Data related to a Predictive Test Selection simulation (task/goal level).
      required:
        - wallClockSavingsPotential
        - serialTimeSavingsPotential
        - avoidableTestClassesCount
        - unavoidableTestClassesCount
        - testClassesCountSelectedDueToInsufficientData
        - failedTestClassesPredictedCount
      properties:
        wallClockSavingsPotential:
          type: integer
          format: int64
          description: The PTS wallclock savings potential in milliseconds.
        serialTimeSavingsPotential:
          type: integer
          format: int64
          description: The PTS serial time savings potential in milliseconds.
        avoidableTestClassesCount:
          type: integer
          format: int64
          description: The number test classes that can be avoided by PTS.
        unavoidableTestClassesCount:
          type: integer
          format: int64
          description: The number of test classes that cannot be avoided by PTS.
        testClassesCountSelectedDueToInsufficientData:
          type: integer
          format: int64
          description: The number of test classes that were selected because of insufficient data.
        failedTestClassesPredictedCount:
          type: integer
          format: int64
          description: The number of test classes with failed prediction.
    TestPerformanceWorkUnitPredictiveTestSelectionSimulation:
      type: object
      description: Groups data from the three PTS simulation profiles (task/goal level).
      required:
        - conservative
        - standard
        - fast
      properties:
        conservative:
          $ref: '#/components/schemas/TestPerformanceWorkUnitPredictiveTestSelectionSimulationData'
        standard:
          $ref: '#/components/schemas/TestPerformanceWorkUnitPredictiveTestSelectionSimulationData'
        fast:
          $ref: '#/components/schemas/TestPerformanceWorkUnitPredictiveTestSelectionSimulationData'
    TestPerformanceWorkUnitPredictiveTestSelection:
      type: object
      description: Predictive Test Selection related data of a work unit.
      required:
        - usage
      properties:
        usage:
          $ref: '#/components/schemas/TestPerformanceWorkUnitPredictiveTestSelectionUsage'
        simulation:
          $ref: '#/components/schemas/TestPerformanceWorkUnitPredictiveTestSelectionSimulation'
    TestPerformanceWorkUnitTestDistribution:
      type: object
      description: Test Distribution related data of a work unit.
      required:
        - usageStatus
        - wallClockSavings
      properties:
        usageStatus:
          $ref: '#/components/schemas/TestAccelerationFeatureUsageStatus'
        wallClockSavings:
          type: integer
          format: int64
          description: The wall-clock savings in milliseconds, which can be negative. Negative values indicate that it took more time to make the Test Distribution request, than it would have taken to directly execute the tests.
          nullable: true
        remoteTestClassesCount:
          type: integer
          description: The number of test classes that have been executed remotely by Test Distribution. Null if Test Distribution was disabled / unavailable.
          nullable: true
    TestPerformanceWorkUnitTestAcceleration:
      type: object
      description: Test acceleration data of a work unit.
      required:
        - predictiveTestSelection
        - testDistribution
        - wallClockSavings
      properties:
        predictiveTestSelection:
          $ref: '#/components/schemas/TestPerformanceWorkUnitPredictiveTestSelection'
        testDistribution:
          $ref: '#/components/schemas/TestPerformanceWorkUnitTestDistribution'
        wallClockSavings:
          type: integer
          format: int64
          description: The wall-clock savings in milliseconds, which can be negative. Negative values indicate that it took more time to make the test acceleration requests, than it would have taken to directly execute the tests.
          nullable: true
    TestPerformanceTask:
      type: object
      description: Test task
      required:
        - taskPath
        - taskType
        - wallClockExecutionTime
        - serialExecutionTime
        - tests
        - testAcceleration
      properties:
        taskPath:
          type: string
          description: The path of the test task
        taskType:
          type: string
          description: The fully qualified name of the task type
        wallClockExecutionTime:
          type: integer
          format: int64
          description: The total execution time of the test task in millis. This is the time elapsed between the start and end of the entire test task.
        serialExecutionTime:
          type: integer
          format: int64
          description: The serial execution time of the test task in millis. This is the sum of all serial test class durations and includes the setup and cleanup durations of the test task.
        tests:
          $ref: '#/components/schemas/WorkUnitTestPerformanceTests'
        testAcceleration:
          $ref: '#/components/schemas/TestPerformanceWorkUnitTestAcceleration'
    GradleTestPerformance:
      type: object
      description: Test performance metrics of a Gradle build.
      required:
        - tests
        - serialTestTasksExecutionTime
        - testAcceleration
        - testTasks
      properties:
        tests:
          $ref: '#/components/schemas/BuildTestPerformanceTests'
        serialTestTasksExecutionTime:
          type: integer
          format: int64
          description: The sum of the serial execution times in millis of test tasks run in the build.
        testAcceleration:
          $ref: '#/components/schemas/TestPerformanceBuildTestAcceleration'
        testTasks:
          type: array
          items:
            $ref: '#/components/schemas/TestPerformanceTask'
    GradleBuildCachePerformanceTaskExecutionEntry:
      type: object
      required:
        - taskPath
        - taskType
        - avoidanceOutcome
        - duration
        - hasFailed
      properties:
        taskPath:
          type: string
          description: The full task path.
        taskType:
          type: string
          description: The fully qualified class name of the task.
        avoidanceOutcome:
          type: string
          enum:
            - avoided_up_to_date
            - avoided_from_local_cache
            - avoided_from_remote_cache
            - executed_cacheable
            - executed_not_cacheable
            - executed_unknown_cacheability
            - avoided_unknown_reason
            - lifecycle
            - no-source
            - skipped
          description: |
            The avoidance outcome of this task with respect to performance:
              * `avoided_up_to_date` - Task whose execution is avoided due to build incrementalism
              * `avoided_from_local_cache` - Task whose execution is avoided due to reusing a local build cache entry
              * `avoided_from_remote_cache` - Task whose execution is avoided due to reusing a remote build cache entry
              * `avoided_unknown_reason` - Task which was avoided for an unknown reason
              * `executed_cacheable` - Task which is executed but is cacheable
              * `executed_not_cacheable` - Task which is executed but is not cacheable
              * `executed_unknown_cacheability` - Task which is executed and whose cacheability can not be determined
              * `lifecycle` - Lifecycle task
              * `no-source` - No-source task
              * `skipped` - Skipped task
        duration:
          type: integer
          format: int64
          description: The task duration in milliseconds.
        fingerprintingDuration:
          type: integer
          format: int64
          description: The task fingerprinting duration in milliseconds. This duration is part of the complete task execution duration. `null` if the task is not fingerprinted, or the information is not available.
          nullable: true
        avoidanceSavings:
          type: integer
          format: int64
          description: The task avoidance savings in milliseconds, which can be negative. Negative values indicate that it takes more time to reuse outputs than it did to create them originally. `null` if the information is not available.
          nullable: true
        nonCacheabilityCategory:
          type: string
          enum:
            - build_cache_not_enabled
            - cache-if_condition_not_matched
            - disabled_to_ensure_correctness
            - do-not-cache-if_condition_matched
            - multiple_outputs_declared
            - no_outputs_declared
            - non_cacheable_inputs
            - non_cacheable_task_action
            - non_cacheable_task_implementation
            - non_cacheable_tree_output
            - overlapping_outputs
            - task_has_no_actions
            - task_output_caching_not_enabled
            - unknown
          description: |
            The category of the non-cacheability reason:
              * `build_cache_not_enabled` - Caching is not enabled for the build
              * `cache-if_condition_not_matched` - Caching is disabled for the task via `org.gradle.api.tasks.TaskOutputs#cacheIf`
              * `disabled_to_ensure_correctness` - The task failed validation. Available since Gradle 7.0
              * `do-not-cache-if_condition_matched` - Caching is disabled for the task via `org.gradle.api.tasks.TaskOutputs#doNotCacheIf`
              * `multiple_outputs_declared` - The task declares multiple outputs
              * `no_outputs_declared` - The task has no outputs declared
              * `non_cacheable_inputs` - One of the task inputs is not cacheable, either because some type used as an input to the task is loaded via a custom classloader, or a Java lambda is used as an input. Available since Gradle 5.0 and before Gradle 7.5
              * `non_cacheable_task_action` - One of the task actions is not cacheable, either because it is loaded via a custom classloader, or a Java lambda is used to implement it. Available since Gradle 5.0 and before Gradle 7.5
              * `non_cacheable_task_implementation` - The task implementation is not cacheable, either because it is loaded via a custom classloader, or a Java lambda is used to implement it. Available since Gradle 5.0 and before Gradle 7.5
              * `non_cacheable_tree_output` - The task has a `org.gradle.api.file.FileTree` or a `org.gradle.api.internal.file.collections.DirectoryFileTree` as an output. Available since Gradle 5.0
              * `overlapping_outputs` - The tasks outputs overlaps with another task. As Gradle cannot safely determine which task each output file belongs to, it disables caching            
              * `task_has_no_actions` - The task does not declare any actions
              * `task_output_caching_not_enabled` - Caching is not enabled for the task
              * `unknown` - Reason for disabled caching is not known

            `null` when the task is cacheable or if the information is not available.
          nullable: true
        nonCacheabilityReason:
          type: string
          description: The human-readable reason for a non-cacheable task. `null` when the task is cacheable or if the information is not available.
          nullable: true
        skipReasonMessage:
          type: string
          description: The detailed reason why the task is skipped. `null` if the task is not skipped or Gradle versions <7.6 are used.
          nullable: true
        cacheArtifactSize:
          type: integer
          format: int64
          description: |
            The number of bytes of the produced or consumed cache artifact.
            For a task execution where the outputs are successfully stored to a local or remote cache, this is the size of the stored cache artifact. For a task execution where the outputs are successfully loaded from a local or remote cache, this is the size of the loaded cache artifact.
            `null` if the task is not cacheable, or if the attempt to store or load the artifact from cache does not succeed.
          nullable: true
        cacheArtifactRejectedReason:
          description: |
            The reason why the cache artifact is rejected:
              * `artifact_size_too_large` - The size of the artifact is larger than the remote build cache can accept.

            The value is `null` if the task is not cacheable, or if the attempt to store the artifact does not succeed.
          nullable: true
          type: string
          enum:
            - artifact_size_too_large
        cacheKey:
          type: string
          description: The build cache key. `null` if no build cache key was computed (e.g. when the task is skipped).
          nullable: true
        hasFailed:
          type: boolean
          description: True when the task failed, false otherwise.
    GradleBuildCachePerformanceTaskExecution:
      type: array
      description: A list of executed tasks with performance related information.
      items:
        $ref: '#/components/schemas/GradleBuildCachePerformanceTaskExecutionEntry'
    GradleBuildCachePerformanceTaskFingerprintingSummary:
      type: object
      description: A summary of task fingerprinting. Fingerprinted tasks are part of the `taskExecution.avoidedTasks` or `taskExecution.executedTasks`, or `taskExecution.noSourceTasks` buckets. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `2.1`.
      nullable: true
      required:
        - count
        - serialDuration
      properties:
        count:
          type: integer
          description: Count of fingerprinted tasks.
        serialDuration:
          type: integer
          format: int64
          description: Sum of all fingerprinting times of fingerprinted tasks in milliseconds.
    GradleBuildCachePerformanceWorkUnitFingerprintingSummary:
      type: object
      description: A summary of task and artifact transform fingerprinting. `null` if Gradle version is < `5.0` or Develocity Gradle plugin version is < `2.1`.
      nullable: true
      required:
        - count
        - serialDuration
      properties:
        count:
          type: integer
          description: Count of fingerprinted work units.
        serialDuration:
          type: integer
          format: int64
          description: Sum of all fingerprinting times of fingerprinted work units in milliseconds.
    GradleBuildCachePerformanceAvoidanceSavingsSummary:
      type: object
      description: |
        **This is deprecated, use `taskAvoidanceSavingsSummary` instead.**
        A breakdown of avoidance savings.
      deprecated: true
      required:
        - total
        - ratio
        - upToDate
        - localBuildCache
        - remoteBuildCache
      properties:
        total:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to their outputs being reused in milliseconds.
        ratio:
          type: number
          format: double
          description: The ratio of the total avoidance savings against the potential serial execution time (which is the actual serial execution time plus the total avoidance savings). Quantifies the effect of avoidance savings in this build. The bigger the ratio is, the more time is saved when running the build.
        upToDate:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to build incrementalism in milliseconds.
        localBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to their outputs being reused from the local build cache in milliseconds.
        remoteBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to their outputs being reused from the remote build cache in milliseconds.
    GradleBuildCachePerformanceTaskAvoidanceSavingsSummary:
      type: object
      description: A breakdown of avoidance savings for tasks.
      required:
        - total
        - ratio
        - upToDate
        - localBuildCache
        - remoteBuildCache
      properties:
        total:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to their outputs being reused in milliseconds.
        ratio:
          type: number
          format: double
          description: The ratio of the total avoidance savings against the potential serial execution time (which is the actual serial execution time plus the total avoidance savings). Quantifies the effect of avoidance savings in this build. The bigger the ratio is, the more time is saved when running the build.
        upToDate:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to build incrementalism in milliseconds.
        localBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to their outputs being reused from the local build cache in milliseconds.
        remoteBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the tasks due to their outputs being reused from the remote build cache in milliseconds.
    GradleBuildCachePerformanceWorkUnitAvoidanceSavingsSummary:
      type: object
      description: A breakdown of avoidance savings for tasks and artifact transforms.
      required:
        - total
        - ratio
        - upToDate
        - localBuildCache
        - remoteBuildCache
      properties:
        total:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the work units due to their outputs being reused in milliseconds.
        ratio:
          type: number
          format: double
          description: The ratio of the total avoidance savings against the potential serial execution time (which is the actual serial execution time plus the total avoidance savings). Quantifies the effect of avoidance savings in this build. The bigger the ratio is, the more time is saved when running the build.
        upToDate:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the work units due to build incrementalism in milliseconds.
        localBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the work units due to their outputs being reused from the local build cache in milliseconds.
        remoteBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the work units due to their outputs being reused from the remote build cache in milliseconds.
    GradleBuildCachePerformanceBuildCacheLocalInfo:
      type: object
      description: Information about the local build cache used in the build.
      required:
        - isEnabled
      properties:
        isEnabled:
          type: boolean
          description: Indicates whether the local build cache is enabled.
        isPushEnabled:
          type: boolean
          description: Indicates whether pushing to the local build cache is enabled.  `null` if the local build cache is disabled.
          nullable: true
        isDisabledDueToError:
          type: boolean
          description: Indicates whether the local cache is disabled due to an error occurring in loading or storing local build cache entries. `null` if the local build cache is disabled.
        directory:
          type: string
          description: Location of the local build cache. Can be relative or absolute depending on its value. `null` if the local build cache is disabled.
          nullable: true
    GradleBuildCachePerformanceBuildCacheRemoteInfo:
      type: object
      description: Information about the remote build cache used in the build.
      required:
        - isEnabled
      properties:
        type:
          type: string
          description: The type of the connector used to communicate with the remote build cache. `null` if the remote build cache is disabled.
          nullable: true
        className:
          type: string
          description: The class name of the connector. `null` if the remote build cache is disabled.
          nullable: true
        isEnabled:
          type: boolean
          description: Indicates whether the remote build cache is enabled.
        isPushEnabled:
          type: boolean
          description: Indicates whether pushing to the remote build cache is enabled. `null` if the remote build cache is disabled.
          nullable: true
        isDisabledDueToError:
          type: boolean
          description: Indicates whether the remote build cache is disabled during the build due to an error occurring in loading or storing remote build cache entries. `null` if the remote build cache is disabled.
        url:
          type: string
          description: URL of the remote build cache. `null` if the remote build cache is disabled or if the given type is not supported or it doesn't have the concept of a URL.
          nullable: true
    GradleBuildCachePerformanceBuildCacheOverhead:
      type: object
      description: Information about the build cache overhead in this build.
      required:
        - uploading
        - downloading
        - packing
        - unpacking
      properties:
        uploading:
          type: integer
          format: int64
          description: Overhead of upload operations in milliseconds.
        downloading:
          type: integer
          format: int64
          description: Overhead of download operations in milliseconds.
        packing:
          type: integer
          format: int64
          description: Overhead of pack operations in milliseconds.
        unpacking:
          type: integer
          format: int64
          description: Overhead of unpack operations in milliseconds.
    GradleBuildCachePerformanceBuildCaches:
      type: object
      description: Information about the local and remote build caches used in the build. `null` if the build cache is globally disabled.
      nullable: true
      required:
        - local
        - remote
        - overhead
      properties:
        local:
          $ref: '#/components/schemas/GradleBuildCachePerformanceBuildCacheLocalInfo'
        remote:
          $ref: '#/components/schemas/GradleBuildCachePerformanceBuildCacheRemoteInfo'
        overhead:
          $ref: '#/components/schemas/GradleBuildCachePerformanceBuildCacheOverhead'
    GradleBuildCachePerformance:
      type: object
      description: The build cache performance of a Gradle build.
      required:
        - id
        - buildTime
        - effectiveTaskExecutionTime
        - effectiveWorkUnitExecutionTime
        - serialTaskExecutionTime
        - serialWorkUnitExecutionTime
        - serializationFactor
        - taskExecution
        - avoidanceSavingsSummary
        - taskAvoidanceSavingsSummary
        - workUnitAvoidanceSavingsSummary
      properties:
        id:
          type: string
          description: The Build Scan ID.
        buildTime:
          type: integer
          format: int64
          description: Wall clock duration of the build in milliseconds.
        effectiveTaskExecutionTime:
          type: integer
          format: int64
          description: Wall clock time spent executing tasks in milliseconds. It is the time spent between the start of the first task in the execution phase and the end of the last task of the execution phase, removing any interval where no task is being executed.
        effectiveWorkUnitExecutionTime:
          type: integer
          format: int64
          description: Wall clock time spent executing work units (tasks and artifact transforms) in milliseconds. It is the time spent between the start of the first work unit in the execution phase and the end of the last work unit of the execution phase, removing any interval where no work unit is being executed.
        serialTaskExecutionTime:
          type: integer
          format: int64
          description: Wall clock time of all task executions in milliseconds. It is the sum of all individual task durations.
        serialWorkUnitExecutionTime:
          type: integer
          format: int64
          description: Wall clock time of all work unit executions (tasks and artifact transforms) in milliseconds. It is the sum of all individual work unit durations.
        serializationFactor:
          type: number
          format: double
          description: The ratio of `serialWorkUnitExecutionTime` over the `effectiveWorkUnitExecutionTime`. Quantifies the effect of work unit parallelization. A value equal to `1` means that no parallelization occurred. A value greater than `1` means that work units are executed faster due to parallelization.
        taskExecution:
          $ref: '#/components/schemas/GradleBuildCachePerformanceTaskExecution'
        taskFingerprintingSummary:
          $ref: '#/components/schemas/GradleBuildCachePerformanceTaskFingerprintingSummary'
        workUnitFingerprintingSummary:
          $ref: '#/components/schemas/GradleBuildCachePerformanceWorkUnitFingerprintingSummary'
        avoidanceSavingsSummary:
          $ref: '#/components/schemas/GradleBuildCachePerformanceAvoidanceSavingsSummary'
        taskAvoidanceSavingsSummary:
          $ref: '#/components/schemas/GradleBuildCachePerformanceTaskAvoidanceSavingsSummary'
        workUnitAvoidanceSavingsSummary:
          $ref: '#/components/schemas/GradleBuildCachePerformanceWorkUnitAvoidanceSavingsSummary'
        buildCaches:
          $ref: '#/components/schemas/GradleBuildCachePerformanceBuildCaches'
    GradleProject:
      type: object
      description: A Gradle project.
      required:
        - name
        - path
      properties:
        name:
          type: string
          description: The name of the project.
        path:
          type: string
          description: The path of the project.
        parent:
          type: integer
          nullable: true
          description: The index of the parent of this Gradle project in the GradleProjects array. `null` if this project has no parent (i.e. root project of a build).
    GradleProjects:
      type: array
      items:
        $ref: '#/components/schemas/GradleProject'
      description: List of Gradle projects including structural relationships.
    GradleNetworkActivitySubset:
      type: object
      properties:
        networkRequestCount:
          description: This represents the total count of network requests for this subset of requests.
          format: int64
          type: integer
          minimum: 0
        serialNetworkRequestTime:
          description: The duration in milliseconds representing the sum of times for potentially parallel network requests for this subset of requests. It does not reflect wall clock time but offers a rough estimation of network activity.
          format: int64
          type: integer
          minimum: 0
        fileDownloadSize:
          type: integer
          format: int64
          minimum: 0
          description: The total number of bytes downloaded for dependencies from this subset of requests. It accounts only for the bytes of the files (e.g. POMs, JARs) downloaded and not the total network transfer.
        fileDownloadCount:
          type: integer
          format: int64
          minimum: 0
          description: The total number of successfully downloaded files from this subset of requests.
        wallClockNetworkRequestTime:
          description: The estimate in milliseconds representing the wall clock time spent on network requests during the current build for this subset of requests.
          format: int64
          type: integer
          minimum: 0
    GradleNetworkActivity:
      type: object
      description: Information about the network activity of the build. It includes network activity during dependency resolution, java toolchain downloads, etc. For a comprehensive list see the Build Scan.
      required:
        - networkRequestCount
        - serialNetworkRequestTime
        - fileDownloadSize
        - fileDownloadCount
      properties:
        networkRequestCount:
          description: This represents the total count of network requests.
          format: int64
          type: integer
          minimum: 0
        serialNetworkRequestTime:
          description: The duration in milliseconds representing the sum of times for potentially parallel network requests. It does not reflect wall clock time but offers a rough estimation of network activity.
          format: int64
          type: integer
          minimum: 0
        wallClockNetworkRequestTime:
          description: |
            The estimate in milliseconds representing the wall clock time spent on network requests during the current build. It is calculated by comparing the critical path within non-execution and execution phases with and without network requests, converted to wall clock time. This is null when Gradle version is lower than 6.2 or the Develocity plugin version is lower than 3.12.
          format: int64
          type: integer
          minimum: 0
        fileDownloadSize:
          type: integer
          format: int64
          minimum: 0
          description: The total number of bytes downloaded for dependencies. It accounts only for the bytes of the files (e.g. POMs, JARs) downloaded and not the total network transfer.
        fileDownloadCount:
          type: integer
          format: int64
          minimum: 0
          description: The total number of successfully downloaded files.
        methods:
          type: object
          description: A breakdown of the network activity by HTTP method, when available.
          additionalProperties:
            $ref: '#/components/schemas/GradleNetworkActivitySubset'
        repositories:
          type: object
          description: |
            A breakdown of the network activity by repository URL, when available. This is empty when Gradle version is lower than 4.10, Develocity plugin version is lower than 1.16, or no repositories were captured.
          additionalProperties:
            $ref: '#/components/schemas/GradleNetworkActivitySubset'
        repositoryMethods:
          type: object
          description: A breakdown of the network activity by HTTP method and repository, when available.
          additionalProperties:
            $ref: '#/components/schemas/GradleNetworkActivitySubset'
    GradleArtifactTransformAttribute:
      type: object
      required:
        - name
        - from
        - to
      properties:
        name:
          type: string
          description: The name of the attribute.
        from:
          type: string
          description: The input attribute value.
        to:
          type: string
          description: The requested attributed value.
    GradleArtifactTransformExecutionEntry:
      type: object
      required:
        - artifactTransformExecutionName
        - transformActionType
        - inputArtifactName
        - changedAttributes
        - outcome
        - avoidanceOutcome
        - duration
      properties:
        artifactTransformExecutionName:
          type: string
          description: Artifact transform execution name.
        transformActionType:
          type: string
          description: The fully qualified class name of the artifact transform action.
        inputArtifactName:
          type: string
          description: The name of the input artifact transformed by this transform.
        changedAttributes:
          type: array
          description: The list of changed attributes merged from all transform execution requests.
          items:
            $ref: '#/components/schemas/GradleArtifactTransformAttribute'
        outcome:
          type: string
          enum:
            - failed
            - success
            - from_cache
            - up_to_date
            - unknown
            - skipped
          description: |
            The outcome of this artifact transform execution:
              * `failed` - Artifact transform execution which failed
              * `success` - Artifact transform execution which was successfully executed
              * `from_cache` - Artifact transform execution which was taken from cache
              * `up_to_date` - Artifact transform execution which was up-to-date
              * `unknown` - Artifact transform execution whose outcome is unknown
              * `skipped` - Artifact transform execution which was skipped. **This is not emitted anymore, replaced by `up_to_date`.**
        avoidanceOutcome:
          type: string
          enum:
            - avoided_up_to_date
            - avoided_from_local_cache
            - avoided_from_remote_cache
            - executed_cacheable
            - executed_not_cacheable
            - executed_unknown_cacheability
            - avoided_unknown_cachebility
            - avoided_unknown_reason
            - skipped
          description: |
            The avoidance outcome of this artifact transform execution with respect to performance:
              * `avoided_up_to_date` - Artifact transform execution whose execution is avoided due to build incrementalism
              * `avoided_from_local_cache` - Artifact transform execution whose execution is avoided due to reusing a local build cache entry
              * `avoided_from_remote_cache` - Artifact transform execution whose execution is avoided due to reusing a remote build cache entry
              * `avoided_unknown_reason` - Artifact transform execution which was avoided for an unknown reason
              * `executed_cacheable` - Artifact transform execution which is executed but is cacheable
              * `executed_not_cacheable` - Artifact transform execution which is executed but is not cacheable
              * `executed_unknown_cacheability` - Artifact transform execution which is executed and whose cacheability can not be determined
              * `skipped` - Skipped artifact transform execution. **This is not emitted anymore, replaced by `up_to_date`.**
        duration:
          type: integer
          format: int64
          description: The artifact transform execution duration in milliseconds.
        fingerprintingDuration:
          type: integer
          format: int64
          description: The artifact transform execution fingerprinting duration in milliseconds. This duration is part of the complete artifact transform execution duration. `null` if the artifact transform is not fingerprinted.
        avoidanceSavings:
          type: integer
          format: int64
          description: The artifact transform execution avoidance savings in milliseconds, which can be negative. Negative values indicate that it takes more time to reuse outputs than it did to create them originally. `null` if the information is not available.
        nonCacheabilityCategory:
          type: string
          enum:
            - build_cache_not_enabled
            - disabled_to_ensure_correctness
            - not_cacheable
            - unknown
          description: |
            The category of the non-cacheability reason:
              * `build_cache_not_enabled` - Caching is not enabled for the build
              * `disabled_to_ensure_correctness` - The artifact transform failed validation
              * `not_cacheable` - Caching is not enabled for this artifact transform
              * `unknown` - Reason for disabled caching is not known

            `null` when the artifact transform execution is cacheable
          nullable: true
        nonCacheabilityReason:
          type: string
          description: The human-readable reason for a non-cacheable artifact transform execution. `null` when the artifact transform execution is cacheable.
          nullable: true
        cacheArtifactSize:
          type: integer
          format: int64
          description: |
            The number of bytes of the produced or consumed cache artifact.
            For an artifact transform execution where the outputs are successfully stored to a local or remote cache, this is the size of the stored cache artifact. For an artifact transform execution execution where the outputs are successfully loaded from a local or remote cache, this is the size of the loaded cache artifact.
            `null` if the  an artifact transform execution is not cacheable, or if the attempt to store or load the artifact from cache does not succeed.
          nullable: true
        cacheArtifactRejectedReason:
          description: |
            The reason why the cache artifact is rejected:
              * `artifact_size_too_large` - The size of the artifact is larger than the remote build cache can accept.

            The value is `null` if the transform execution is not cacheable, or if the attempt to store the artifact does not succeed.
          enum:
            - artifact_size_too_large
          nullable: true
          type: string
        skipReasonMessage:
          type: string
          description: The detailed reason why the transform execution is skipped. `null` if the transform execution is not skipped.
          nullable: true
        cacheKey:
          type: string
          description: The build cache key. `null` if no build cache key was computed.
          nullable: true
    GradleArtifactTransformExecutions:
      type: object
      properties:
        artifactTransformExecutions:
          type: array
          description: A list of executed artifact transforms with performance related information. `null` if artifact transform execution capturing is not supported.
          nullable: true
          items:
            $ref: '#/components/schemas/GradleArtifactTransformExecutionEntry'
    GradleDeprecationOwner:
      type: object
      required:
        - type
      properties:
        location:
          type: string
          description: The location of the deprecation usage. Can be a plugin id, task path, script file path, script URI. `null` if the owner type is unknown.
          nullable: true
        type:
          type: string
          enum:
            - plugin
            - script
            - task
            - unknown
          description: |
            The type of the deprecation owner:
              * `plugin` - The owner of the deprecation is a plugin.
              * `script` - The owner of the deprecation is a script.
              * `task` - The owner of the deprecation is a task.
              * `unknown` - Unknown deprecation owner type when none of the other options match.
    GradleDeprecationUsage:
      type: object
      required:
        - owner
      properties:
        contextualAdvice:
          type: string
          description: Advice on how to avoid using the deprecated feature, that is specific to this particular usage. `null` when no advice is available.
          nullable: true
        owner:
          $ref: '#/components/schemas/GradleDeprecationOwner'
          description: Owner of the deprecation usage. `null` when no owner is available.
    GradleDeprecationEntry:
      type: object
      required:
        - summary
        - removalDetails
        - usages
      properties:
        summary:
          type: string
          description: The description of the deprecation.
        removalDetails:
          type: string
          description: The details about when the deprecated feature will be removed from Gradle.
        advice:
          type: string
          description: The advice on how to avoid using the deprecated feature. `null` when no advice is available.
          nullable: true
        documentationUrl:
          type: string
          description: The external url pointing to some documentation about the deprecation. `null` for older Gradle/plugin combination or certain deprecation notices.
          nullable: true
        usages:
          type: array
          description: List of usages of this deprecation.
          items:
            $ref: '#/components/schemas/GradleDeprecationUsage'
    GradleDeprecations:
      type: object
      properties:
        deprecations:
          type: array
          description: A list of Gradle Build Tool deprecations with details and usage information. `null` if deprecation capturing is not supported.
          nullable: true
          items:
            $ref: '#/components/schemas/GradleDeprecationEntry'
    GradlePlugin:
      type: object
      required:
        - className
        - projects
      properties:
        id:
          type: string
          description: The plugin ID. May be `null`.
        className:
          type: string
          description: The fully qualified class name of the plugin.
        version:
          type: string
          description: The plugin version. May be `null`.
          nullable: true
        projects:
          type: array
          description: The paths of the projects where the plugin is applied. Will always be an array of size 1 for a single project build.
          items:
            type: string
    GradlePlugins:
      type: object
      properties:
        plugins:
          type: array
          description: A list of applied plugins in a Gradle build.
          items:
            $ref: '#/components/schemas/GradlePlugin'
    ResourceUsageMetric:
      type: object
      required:
        - max
        - average
        - median
        - p5
        - p25
        - p75
        - p95
      properties:
        max:
          description: The max value of the metric.
          type: integer
          format: int64
        average:
          description: The average value of the metric.
          type: integer
          format: int64
        median:
          description: The median (or 50th percentile) value of the metric.
          type: integer
          format: int64
        p5:
          description: The 5th percentile value of the metric.
          type: integer
          format: int64
        p25:
          description: The 25th percentile value of the metric.
          type: integer
          format: int64
        p75:
          description: The 75th percentile value of the metric.
          type: integer
          format: int64
        p95:
          description: The 95th percentile value of the metric.
          type: integer
          format: int64
    ResourceUsageBreakdown:
      type: object
      properties:
        allProcessesCpu:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the overall CPU load, expressed as a percentage between 0 and 100.
            Can be `null` if the metrics could not be captured.
          nullable: true
        buildProcessCpu:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the CPU load of the build process, expressed as a percentage between 0 and 100.
            Can be `null` if the metrics could not be captured.
          nullable: true
        buildChildProcessesCpu:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the CPU load of the descendant processes of the build process, expressed as a percentage between 0 and 100.
            Can be `null` if the metrics could not be captured.
          nullable: true
        allProcessesMemory:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for overall memory used all processes, in bytes.
            Can be `null` if the metrics could not be captured.
          nullable: true
        buildProcessMemory:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the memory used by the build process, in bytes.
            Can be `null` if the metrics could not be captured.
          nullable: true
        buildChildProcessesMemory:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the memory used by the descendant processes of the build process, in bytes.
            Can be `null` if the metrics could not be captured.
          nullable: true
        diskReadThroughput:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the disk read throughput, in bytes/s.
            Can be `null` if the metrics could not be captured.
          nullable: true
        diskWriteThroughput:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the disk write throughput, in bytes/s.
            Can be `null` if the metrics could not be captured.
          nullable: true
        networkUploadThroughput:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the network upload throughput, in bytes/s.
            Can be `null` if the metrics could not be captured.
          nullable: true
        networkDownloadThroughput:
          type: object
          $ref: '#/components/schemas/ResourceUsageMetric'
          description: |
            The resource usage metrics for the network download throughput, in bytes/s.
            Can be `null` if the metrics could not be captured.
          nullable: true
    GradleResourceUsage:
      type: object
      properties:
        totalMemory:
          type: integer
          format: int64
          description: The physical memory of the system in bytes. Can be `null` if the metrics could not be captured.
          nullable: true
        total:
          type: object
          $ref: '#/components/schemas/ResourceUsageBreakdown'
          description: |
            The resource usage breakdown spanning the entire duration of the build.
            Can be `null` if resource usage data is not available, because its capturing was not enabled or no data points were captured for the build.
          nullable: true
        nonExecution:
          type: object
          $ref: '#/components/schemas/ResourceUsageBreakdown'
          description: |
            The resource usage breakdown spanning the non-execution phase of the build.
            This includes the time to start and initialize Gradle and configure the build model (e.g. execute build scripts and plugins).
            It also includes the build time of the buildSrc project and included builds contributing to build logic, including the execution of their tasks.
            Can be `null` if resource usage data is not available, because its capturing was not enabled or no data points were captured for the non-execution phase of the build.
          nullable: true
        execution:
          type: object
          $ref: '#/components/schemas/ResourceUsageBreakdown'
          description: |
            The resource usage breakdown spanning the execution phase of the build.
            This represents the elapsed time from the start of the execution of the first Gradle task to the end of the build.
            Can be `null` if resource usage data is not available, because its capturing was not enabled or no data points were captured for the execution phase of the build.
          nullable: true
    GradleBuildTimeBreakdown:
      type: object
      description: The build time breakdown of a Gradle build.
      required:
        - total
        - initialization
      properties:
        total:
          type: integer
          format: int64
          description: Total duration of the build in milliseconds.
        initialization:
          type: integer
          format: int64
          description: The elapsed time from the very start of the build to the moment when any kind of configuration starts in milliseconds.
        configuration:
          type: integer
          format: int64
          nullable: true
          description: The elapsed time to build plugins, execute build scripts, configure projects and create the task execution plan in milliseconds. `null` if the build failed before the configuration phase.
        execution:
          type: integer
          format: int64
          description: The elapsed time from the start of the execution of the first task of the main build to the end of the execution of the last task of the main build in milliseconds. `null` if the build failed before the execution phase.
        endOfBuild:
          type: integer
          format: int64
          nullable: true
          description: The elapsed time from the end of the execution of the last task of the main build to the end of the build in milliseconds. `null` if there was no end of build phase. `null` if the build failed before the end of build phase.
    MemoryPoolUsage:
      type: object
      description: Memory usage of a JVM memory pool.
      required:
        - name
        - peakMemory
        - maxMemory
      properties:
        name:
          type: string
          description: The name of the memory pool.
        peakMemory:
          type: integer
          format: int64
          description: The peak memory usage of this memory pool while running the build, in bytes.
        maxMemory:
          type: integer
          format: int64
          description: The maximum amount of memory in bytes that can be used for memory management. `-1` if the maximum memory size is undefined.
    GradleBuildDaemonJvmMemoryUsage:
      type: object
      description: Memory usage stats of the Gradle Daemon JVM while running the build.
      required:
        - totalGarbageCollectionTime
      properties:
        totalGarbageCollectionTime:
          type: integer
          format: int64
          description: The total garbage collection time.
        memoryPools:
          type: array
          description: A list of all the heap memory pools of the JVM build process and their peak usage.
          items:
            $ref: '#/components/schemas/MemoryPoolUsage'
    GradleBuildProfileOverview:
      type: object
      description: The performance profile overview of a Gradle build.
      required:
        - breakdown
      properties:
        breakdown:
          $ref: '#/components/schemas/GradleBuildTimeBreakdown'
        memoryUsage:
          $ref: '#/components/schemas/GradleBuildDaemonJvmMemoryUsage'
    GradleConfigurationCacheStoreResult:
      type: object
      description: The configuration cache store result of a Gradle build.
      required:
        - duration
        - hasFailed
      properties:
        duration:
          type: integer
          format: int64
          description: The duration of the configuration cache store operation in milliseconds. Does not include dependency resolution time.
        hasFailed:
          type: boolean
          description: True when the configuration cache store operation fails, false otherwise.
    GradleConfigurationCacheLoadResult:
      type: object
      description: The configuration cache load result of a Gradle build.
      required:
        - duration
        - hasFailed
      properties:
        duration:
          type: integer
          format: int64
          description: The duration of the configuration cache load operation in milliseconds.
        hasFailed:
          type: boolean
          description: True when the configuration cache load operation fails, false otherwise.
    GradleConfigurationCacheResult:
      type: object
      description: The configuration cache result of a Gradle build.
      required:
        - outcome
        - dependencyResolutionDuration
      properties:
        outcome:
          type: string
          enum:
            - HIT
            - MISS
            - FAILED
          description: |
            The outcome of the configuration cache operation:
              * `HIT` - There was a configuration cache hit.
              * `MISS` - There was a configuration cache miss.
              * `FAILED` - There was a configuration cache related failure.
        entrySize:
          type: integer
          format: int64
          nullable: true
          description: The size of the configuration entry in bytes. `null` in case of certain failures or if the entry size was not captured.
        checkFingerprintDuration:
          type: integer
          format: int64
          nullable: true
          description: The duration of checking the configuration cache fingerprint. `null` in case no configuration cache fingerprint check was captured.
        dependencyResolutionDuration:
          type: integer
          format: int64
          description: The duration of dependency resolution during configuration caching in seconds.
        store:
          type: object
          nullable: true
          $ref: '#/components/schemas/GradleConfigurationCacheStoreResult'
        load:
          type: object
          nullable: true
          $ref: '#/components/schemas/GradleConfigurationCacheLoadResult'
        missReasons:
          type: array
          nullable: true
          description: The reasons why the configuration cache cannot be reused. `null` if there was no configuration cache hit.
          items:
            type: string
    GradleConfigurationCache:
      type: object
      description: The configuration cache result of a Gradle build. `null` if configuration cache was not used.
      properties:
        result:
          type: object
          nullable: true
          $ref: '#/components/schemas/GradleConfigurationCacheResult'
    CommonDependency:
      type: object
      required:
        - scheme
        - type
        - name
      properties:
        scheme:
          type: string
          description: |
            The scheme used to identify the dependency.
        type:
          type: string
          description: |
            The type of the dependency.
        namespace:
          type: string
          nullable: true
          description: |
            A prefix used to qualify the dependency name.
        name:
          type: string
          description: The name of the dependency.
        version:
          type: string
          nullable: true
          description: The version of the dependency.
        qualifiers:
          type: object
          nullable: true
          description: |
            Additional information to qualify the identity of the dependency. The names and their meanings are type-specific.
          additionalProperties:
            type: string
        subpath:
          type: string
          nullable: true
          description: Subpath within a dependency.
        purl:
          type: string
          nullable: true
          description: The [package URL](https://github.com/package-url/purl-spec) identifier for the dependency.
        repository:
          type: object
          nullable: true
          description: The repository where the dependency was resolved from.
          properties:
            url:
              type: string
              nullable: true
              description: The URL of the repository.
            type:
              type: string
              nullable: true
              description: The type of the repository.
              enum:
                - maven
                - ivy
                - flatDir
                - npm
            resolutionSource:
              type: string
              nullable: true
              description: A classification of the source this repository uses to resolve dependencies.
              enum:
                - remote
                - local
                - unknown
    GradleDependency:
      allOf:
        - $ref: '#/components/schemas/CommonDependency'
        - type: object
    GradleDependencies:
      type: object
      description: |
        Dependencies of a Gradle build. While there are many possible types of dependencies, initial support is for library dependencies of the software. Dependency identifiers are based on the package url (purl) [specification](https://github.com/package-url/purl-spec).
      properties:
        dependencies:
          type: array
          description: List of dependencies of a Gradle build.
          items:
            $ref: '#/components/schemas/GradleDependency'
    MavenDevelocitySettings:
      type: object
      description: Settings for Develocity.
      properties:
        backgroundPublicationEnabled:
          type: boolean
          description: Indicates whether background Build Scan publication is enabled for the build. `null` if Develocity Maven extension version is < `1.6`. See https://gradle.com/help/maven-extension-configuring-background-uploading.
          nullable: true
        buildOutputCapturingEnabled:
          type: boolean
          description: Indicates whether to capture build logging output for the build. `null` if Develocity Maven extension version is < `1.11`. See https://gradle.com/help/maven-extension-capturing-build-and-test-outputs.
          nullable: true
        fileFingerprintCapturingEnabled:
          type: boolean
          description: Indicates whether file fingerprint capturing is enabled for the build. `null` if Develocity Maven extension version is < `1.1`. See https://gradle.com/help/maven-extension-capturing-goal-input-files/.
          nullable: true
        goalInputsFileCapturingEnabled:
          type: boolean
          description: |
            Indicates whether to capture goal input file snapshots for the build. `null` if Develocity Maven extension version is < `1.1`. See https://gradle.com/help/maven-extension-capturing-goal-input-files.
            **This property is deprecated, use `fileFingerprintCapturingEnabled` instead.**
          nullable: true
          deprecated: true
        testOutputCapturingEnabled:
          type: boolean
          description: Indicates whether to capture test logging output for the build. `null` if Develocity Maven extension version is < `1.11`. See https://gradle.com/help/maven-extension-capturing-build-and-test-outputs.
          nullable: true
        resourceUsageCapturingEnabled:
          type: boolean
          description: Indicates whether resource usage capturing is enabled for the build. `null` if Develocity Maven extension version is < `1.22`. See https://gradle.com/help/maven-extension-capturing-resource-usage.
          nullable: true
    MavenBuildOptions:
      type: object
      description: Maven build options for this build.
      required:
        - errorsEnabled
        - maxNumberOfThreads
        - nonRecursiveEnabled
        - noSnapshotsUpdatesEnabled
        - offlineModeEnabled
        - updateSnapshotsEnabled
      properties:
        batchModeEnabled:
          type: boolean
          description: Indicates whether the build is configured to run in non-interactive (batch) mode. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#batch-mode.
          nullable: true
        daemonEnabled:
          type: boolean
          description: Indicates whether the build runs with the Maven Daemon. `null` if Develocity Maven extension version is < `1.24`. See https://github.com/apache/maven-mvnd.
          nullable: true
        debugEnabled:
          type: boolean
          description: Indicates whether the build is configured to produce execution debug output. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#debug.
          nullable: true
        errorsEnabled:
          type: boolean
          description: Indicates whether the build is configured to produce execution error messages. See https://maven.apache.org/ref/current/maven-embedder/cli.html#errors.
        failAtEndEnabled:
          type: boolean
          description: Indicates whether the build is configured to only fail at the end. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#fail-at-end.
          nullable: true
        failFastEnabled:
          type: boolean
          description: Indicates whether the build is configured to fail at the first error. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#fail-fast.
          nullable: true
        failNeverEnabled:
          type: boolean
          description: Indicates whether the build is configured to never fail, regardless of errors produced. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#fail-never.
          nullable: true
        laxChecksumsEnabled:
          type: boolean
          description: Indicates whether the build is configured to only warn if checksums don't match. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#lax-checksums.
          nullable: true
        maxNumberOfThreads:
          type: integer
          description: Maximum number of threads used when executing the build. See https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3.
        nonRecursiveEnabled:
          type: boolean
          description: Indicates whether the build is configured to not recurse into sub-projects. See https://maven.apache.org/ref/current/maven-embedder/cli.html#non-recursive.
        rerunGoalsEnabled:
          type: boolean
          description: Indicates whether the build is configured to rerun goals without checking the build cache. `null` if Develocity Maven extension version is < `1.13`. See https://gradle.com/help/maven-extension-rerunning-goals.
          nullable: true
        noSnapshotsUpdatesEnabled:
          type: boolean
          description: Indicates whether the build is configured to suppress snapshot updates. See https://maven.apache.org/ref/current/maven-embedder/cli.html#no-snapshot-updates.
        offlineModeEnabled:
          type: boolean
          description: Indicates whether the build is configured to run offline. See https://maven.apache.org/ref/current/maven-embedder/cli.html#offline.
        quietEnabled:
          type: boolean
          description: Indicates whether the build is configured to run in quiet mode. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#quiet.
          nullable: true
        strictChecksumsEnabled:
          type: boolean
          description: Indicates whether the build is configured to fail if checksums don't match. `null` if capturing is not possible. See https://maven.apache.org/ref/current/maven-embedder/cli.html#strict-checksums.
          nullable: true
        updateSnapshotsEnabled:
          type: boolean
          description: Indicates whether the build is configured to force a check for missing releases and updated snapshots on remote repositories. See https://maven.apache.org/ref/current/maven-embedder/cli.html#update-snapshots.
        rerunGoals:
          type: boolean
          description: |
            **This property is deprecated, use `rerunGoalsEnabled` instead.**
            Indicates whether the build is configured to rerun goals without checking the build cache. `null` if Develocity Maven extension version is < `1.13`. See https://gradle.com/help/maven-extension-rerunning-goals.
          nullable: true
          deprecated: true
        resumeEnabled:
          type: boolean
          description: Indicates whether the build resumes from the last failed subproject. `null` if Develocity Maven extension version is < `2.2` or Maven version is < Maven 4.
          nullable: true
    MavenGradleEnterpriseSettings:
      type: object
      description: |
        **This property is deprecated, use `develocitySettings` instead.**
        Settings for Develocity.
      deprecated: true
      properties:
        backgroundPublicationEnabled:
          type: boolean
          description: Indicates whether background Build Scan publication is enabled for the build. `null` if Develocity Maven extension version is < `1.6`. See https://gradle.com/help/maven-extension-configuring-background-uploading.
          nullable: true
        buildOutputCapturingEnabled:
          type: boolean
          description: Indicates whether to capture build logging output for the build. `null` if Develocity Maven extension version is < `1.11`. See https://gradle.com/help/maven-extension-capturing-build-and-test-outputs.
          nullable: true
        goalInputsFileCapturingEnabled:
          type: boolean
          description: Indicates whether to capture goal input file snapshots for the build. `null` if Develocity Maven extension version is < `1.1`. See https://gradle.com/help/maven-extension-capturing-goal-input-files.
          nullable: true
        testOutputCapturingEnabled:
          type: boolean
          description: Indicates whether to capture test logging output for the build. `null` if Develocity Maven extension version is < `1.11`. See https://gradle.com/help/maven-extension-capturing-build-and-test-outputs.
          nullable: true
        resourceUsageCapturingEnabled:
          type: boolean
          description: Indicates whether resource usage capturing is enabled for the build. `null` if Develocity Maven extension version is < `1.22`. See https://gradle.com/help/maven-extension-capturing-resource-usage.
          nullable: true
    MavenAttributes:
      type: object
      description: The attributes of a Maven build.
      required:
        - id
        - buildStartTime
        - buildDuration
        - mavenVersion
        - extensionVersion
        - requestedGoals
        - hasFailed
        - tags
        - values
        - links
        - develocitySettings
        - buildOptions
        - environment
        - gradleEnterpriseSettings
      properties:
        id:
          type: string
          description: The Build Scan ID.
        buildStartTime:
          type: integer
          format: int64
          description: The time when the build starts, as milliseconds since Epoch.
        buildDuration:
          type: integer
          format: int64
          description: The duration of the build, as milliseconds.
        mavenVersion:
          type: string
          description: The Maven version used.
        extensionVersion:
          type: string
          description: The Develocity Maven extension version used.
        topLevelProjectName:
          type: string
          description: The top level project name. `null` in case of very early build failure.
          nullable: true
        requestedGoals:
          type: array
          items:
            type: string
          description: The list of requested goals.
        hasFailed:
          type: boolean
          description: True when the build fails, false otherwise.
        hasVerificationFailure:
          type: boolean
          description: |
            Set only if the build fails: true when the build has at least one failure classified as "Verification", false otherwise.  The Verification classification is meant for failures that are expected within a standard application development lifecycle. They typically represent a problem with the developer’s inputs to the build such as the source code.
        hasNonVerificationFailure:
          type: boolean
          description: |
            Set only if the build fails: true when the build has at least one failure classified as "Non-verification", false otherwise.  The Non-verification classification is meant for failures that are typically not expected within a standard application development lifecycle, such as build configuration failures, dependency resolution failures, and infrastructure failures.
        tags:
          type: array
          items:
            type: string
          description: The list of Build Scan tags.
        values:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesValue'
          description: The list of Build Scan values.
        links:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesLink'
          description: The list of Build Scan links.
        develocitySettings:
          $ref: '#/components/schemas/MavenDevelocitySettings'
        buildOptions:
          $ref: '#/components/schemas/MavenBuildOptions'
        environment:
          $ref: '#/components/schemas/BuildAttributesEnvironment'
        gradleEnterpriseSettings:
          $ref: '#/components/schemas/MavenGradleEnterpriseSettings'
          description: |
            **This property is deprecated, use `develocitySettings` instead.**
            Settings for Develocity.
          deprecated: true
    TestPerformanceGoal:
      type: object
      description: Test goal
      required:
        - goalPath
        - goalType
        - wallClockExecutionTime
        - serialExecutionTime
        - tests
        - testAcceleration
      properties:
        goalPath:
          type: string
          description: The path of the test goal
        goalType:
          type: string
          description: The fully qualified name of the goal type
        wallClockExecutionTime:
          type: integer
          format: int64
          description: The total execution time of the test goal in millis. This is the time elapsed between the start and end of the entire test goal.
        serialExecutionTime:
          type: integer
          format: int64
          description: The serial execution time of the test goal in millis. This is the sum of all serial test class durations and includes the setup and cleanup durations of the test goal.
        tests:
          $ref: '#/components/schemas/WorkUnitTestPerformanceTests'
        testAcceleration:
          $ref: '#/components/schemas/TestPerformanceWorkUnitTestAcceleration'
    MavenTestPerformance:
      type: object
      description: Test performance metrics of a Maven build.
      required:
        - tests
        - serialTestGoalsExecutionTime
        - testAcceleration
        - testGoals
      properties:
        tests:
          $ref: '#/components/schemas/BuildTestPerformanceTests'
        serialTestGoalsExecutionTime:
          type: integer
          format: int64
          description: The sum of the serial execution times in millis of test goals run in the build.
        testAcceleration:
          $ref: '#/components/schemas/TestPerformanceBuildTestAcceleration'
        testGoals:
          type: array
          items:
            $ref: '#/components/schemas/TestPerformanceGoal'
    MavenBuildCachePerformanceGoalExecutionEntry:
      type: object
      required:
        - goalName
        - mojoType
        - goalExecutionId
        - goalProjectName
        - avoidanceOutcome
        - duration
        - hasFailed
      properties:
        goalName:
          type: string
          description: The goal name.
        mojoType:
          type: string
          description: The fully qualified class name of the Mojo that provides the implementation of this goal.
        goalExecutionId:
          type: string
          description: The goal execution ID.
        goalProjectName:
          type: string
          description: The goal project name.
        avoidanceOutcome:
          type: string
          enum:
            - avoided_from_local_cache
            - avoided_from_remote_cache
            - executed_cacheable
            - executed_not_cacheable
            - executed_unknown_cacheability
            - skipped
          description: |
            The avoidance outcome of this task with respect to performance:
              * `avoided_from_local_cache` - Goal whose execution is avoided due to reusing a local build cache entry
              * `avoided_from_remote_cache` - Goal whose execution is avoided due to reusing a remote build cache entry
              * `executed_cacheable` - Goal which is executed but is cacheable
              * `executed_not_cacheable` - Goal which is executed but is not cacheable
              * `executed_unknown_cacheability` - Goal which is executed and whose cacheability cannot be determined
              * `skipped` - Skipped goal
        duration:
          type: integer
          format: int64
          description: The goal duration in milliseconds.
        fingerprintingDuration:
          type: integer
          format: int64
          description: The goal fingerprinting duration in milliseconds. This duration is part of the complete task execution duration. `null` if the goal is not fingerprinted.
          nullable: true
        avoidanceSavings:
          type: integer
          format: int64
          description: The goal avoidance savings in milliseconds, which can be negative. Negative values indicate that it takes more time to reuse outputs than it did to create them originally. `null` if the information is not available.
          nullable: true
        nonCacheabilityCategory:
          type: string
          enum:
            - build_cache_disabled_by_user
            - goal_execution_marked_non_cacheable
            - goal_not_supported
            - no_gradle_enterprise_server_configured
            - no_develocity_server_configured
            - non_clean_build
            - not_entitled
            - offline_build
            - unknown
            - unknown_entitlements
          description: |
            The category of the non-cacheability reason:
              * `build_cache_disabled_by_user` - The build cache is disabled by the user
              * `goal_execution_marked_non_cacheable` - The goal execution is marked as non-cacheable
              * `goal_not_supported` - The goal does not support build caching
              * `no_gradle_enterprise_server_configured` - No Develocity server is configured **Deprecated, use `no_develocity_server_configured` instead**
              * `no_develocity_server_configured` - No Develocity server is configured
              * `non_clean_build` - The `clean` lifecycle is not executed 
              * `not_entitled` - The Develocity license entitlements does not allow Maven build caching
              * `offline_build` - The build is run in offline mode
              * `unknown` - Reason for disabled caching is not known
              * `unknown_entitlements` - The Develocity license entitlements cannot be checked

            `null` when the goal execution is cacheable or if the information is not available.
          nullable: true
        nonCacheabilityReason:
          type: string
          description: The human-readable reason for a non-cacheable goal execution. `null` when the goal execution is cacheable or if the information is not available.
          nullable: true
        cacheArtifactSize:
          type: integer
          format: int64
          description: |
            The number of bytes of the produced or consumed cache artifact.
            For a goal execution where the outputs are successfully stored to a local or remote cache, this is the size of the stored cache artifact. For a goal execution where the outputs are successfully loaded from a local or remote cache, this is the size of the loaded cache artifact.
            `null` if the goal execution is not cacheable, or if the attempt to store or load the artifact from cache does not succeed.
          nullable: true
        cacheArtifactRejectedReason:
          description: |
            The reason why the cache artifact has been rejected:
              * `artifact_size_too_large` - The size of the artifact is larger than the remote build cache can accept.

            `null` if the goal is not cacheable, or if the attempt to store the artifact does not succeed.
          nullable: true
          type: string
          enum:
            - artifact_size_too_large
        cacheKey:
          type: string
          description: Build cache key. `null` if no build cache key was computed (e.g. when fingerprinting failed).
          nullable: true
        hasFailed:
          type: boolean
          description: True when the goal failed, false otherwise.
    MavenBuildCachePerformanceGoalExecution:
      type: array
      description: A list of executed goals with performance related information.
      items:
        $ref: '#/components/schemas/MavenBuildCachePerformanceGoalExecutionEntry'
    MavenBuildCachePerformanceGoalFingerprintingSummary:
      type: object
      description: A summary of goal fingerprinting. Fingerprinted goals are part of the `goalExecution.avoidedGoals` or `goalExecution.executedGoals` buckets.
      required:
        - count
        - serialDuration
      properties:
        count:
          type: integer
          description: Count of fingerprinted goals.
        serialDuration:
          type: integer
          format: int64
          description: Sum of all fingerprinting times of fingerprinted goals in milliseconds.
    MavenBuildCachePerformanceAvoidanceSavingsSummary:
      type: object
      description: A breakdown of avoidance savings.
      required:
        - total
        - ratio
        - localBuildCache
        - remoteBuildCache
      properties:
        total:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the goals due to their outputs being reused in milliseconds.
        ratio:
          type: number
          format: double
          description: The ratio of the total avoidance savings against the potential serial execution time (which is the actual serial execution time plus the total avoidance savings). Quantifies the effect of avoidance savings in this build. The bigger the ratio is, the more time is saved when running the build.
        localBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the goals due to their outputs being reused from the local build cache in milliseconds.
        remoteBuildCache:
          type: integer
          format: int64
          description: The estimated reduction in serial execution time of the goals due to their outputs being reused from the remote build cache in milliseconds.
    MavenBuildCachePerformanceBuildCacheLocalInfo:
      type: object
      description: Information about the local build cache used in the build, if it is configured in the build. `null` if the local build cache is not configured.
      nullable: true
      required:
        - isEnabled
      properties:
        isEnabled:
          type: boolean
          description: Indicates whether the local build cache is enabled.
        isPushEnabled:
          type: boolean
          description: Indicates whether pushing to the local build cache is enabled. `null` if the local build cache is disabled.
          nullable: true
        isDisabledDueToError:
          type: boolean
          description: Indicates whether the local cache is disabled due to an error occurring in loading or storing local build cache entries. `null` if the local build cache is disabled.
        directory:
          type: string
          description: Location of the local build cache. Can be relative or absolute depending on its value. `null` if the local build cache is disabled.
          nullable: true
    MavenBuildCachePerformanceBuildCacheRemoteInfo:
      type: object
      description: Information about the remote build cache used in the build, if it is configured in the build. `null` if the remote build cache is not configured.
      nullable: true
      required:
        - isEnabled
      properties:
        isEnabled:
          type: boolean
          description: Indicates whether the remote build cache is enabled.
        isPushEnabled:
          type: boolean
          description: Indicates whether pushing to the remote build cache is enabled. `null` if the remote build cache is disabled.
          nullable: true
        isDisabledDueToError:
          type: boolean
          description: Indicates whether the remote build cache is disabled during the build due to an error occurring in loading or storing remote build cache entries. `null` if the remote build cache is disabled.
        url:
          type: string
          description: URL of the remote build cache. `null` if the remote build cache is disabled.
          nullable: true
    MavenBuildCachePerformanceBuildCacheOverhead:
      type: object
      description: Information about the build cache overhead in this build.
      required:
        - uploading
        - downloading
        - packing
        - unpacking
      properties:
        uploading:
          type: integer
          format: int64
          description: Overhead of upload operations in milliseconds.
        downloading:
          type: integer
          format: int64
          description: Overhead of download operations in milliseconds.
        packing:
          type: integer
          format: int64
          description: Overhead of pack operations in milliseconds.
        unpacking:
          type: integer
          format: int64
          description: Overhead of unpack operations in milliseconds.
    MavenBuildCachePerformanceBuildCaches:
      type: object
      description: Information about the local and remote build caches used in the build, if it is configured in the build. `null` if the build cache configuration cannot be captured (e.g. very early build failure).
      nullable: true
      required:
        - overhead
      properties:
        local:
          $ref: '#/components/schemas/MavenBuildCachePerformanceBuildCacheLocalInfo'
        remote:
          $ref: '#/components/schemas/MavenBuildCachePerformanceBuildCacheRemoteInfo'
        overhead:
          $ref: '#/components/schemas/MavenBuildCachePerformanceBuildCacheOverhead'
    MavenBuildCachePerformance:
      type: object
      description: The build cache performance of a Maven build.
      required:
        - id
        - buildTime
        - effectiveProjectExecutionTime
        - serialProjectExecutionTime
        - serializationFactor
        - goalExecution
        - goalFingerprintingSummary
        - avoidanceSavingsSummary
      properties:
        id:
          type: string
          description: The Build Scan ID.
        buildTime:
          type: integer
          format: int64
          description: Wall clock duration of the build in milliseconds.
        effectiveProjectExecutionTime:
          type: integer
          format: int64
          description: Wall clock time spent executing projects in milliseconds. It is the time spent between the start of the first project execution and the end of the last project execution, removing any interval where no project is being executed.
        serialProjectExecutionTime:
          type: integer
          format: int64
          description: Wall clock time of all project executions in milliseconds. It is the sum of all individual project durations.
        serializationFactor:
          type: number
          format: double
          description: The ratio of `serialProjectExecutionTime` over the `effectiveProjectExecutionTime`. Quantifies the effect of project parallelization. A value equal to `1` means that no parallelization occurs. A value greater than `1` means that projects are executed faster due to parallelization.
        goalExecution:
          $ref: '#/components/schemas/MavenBuildCachePerformanceGoalExecution'
        goalFingerprintingSummary:
          $ref: '#/components/schemas/MavenBuildCachePerformanceGoalFingerprintingSummary'
        avoidanceSavingsSummary:
          $ref: '#/components/schemas/MavenBuildCachePerformanceAvoidanceSavingsSummary'
        buildCaches:
          $ref: '#/components/schemas/MavenBuildCachePerformanceBuildCaches'
    MavenModule:
      type: object
      description: A Maven module.
      required:
        - name
        - groupId
        - artifactId
        - version
      properties:
        name:
          type: string
          description: The name of the module.
        groupId:
          type: string
          description: The group ID of the module.
        artifactId:
          type: string
          description: The artifact ID of the module.
        version:
          type: string
          description: The version of the module.
        parent:
          type: integer
          nullable: true
          description: The index of the parent of this Maven module in the MavenModules array. `null` if this module has no parent (i.e. top level project).
    MavenModules:
      type: array
      items:
        $ref: '#/components/schemas/MavenModule'
      description: List of Maven modules including structural relationships.
    MavenDependencyResolutionSubset:
      type: object
      properties:
        networkRequestCount:
          description: This represents the total count of network requests for this subset of requests.
          format: int64
          type: integer
          minimum: 0
        serialNetworkRequestTime:
          description: The duration in milliseconds representing the sum of times for potentially parallel network requests for this subset of requests. It does not reflect wall clock time but offers a rough estimation of network activity.
          format: int64
          type: integer
          minimum: 0
        fileDownloadSize:
          type: integer
          format: int64
          minimum: 0
          description: The total number of bytes downloaded for dependencies from this subset of requests. It accounts only for the bytes of the files (e.g. POMs, JARs) downloaded and not the total network transfer.
        fileDownloadCount:
          type: integer
          format: int64
          minimum: 0
          description: The total number of successfully downloaded files from this subset of requests.
        wallClockNetworkRequestTime:
          description: The estimate in milliseconds representing the wall clock time spent on network requests during the current build for this subset of requests.
          format: int64
          type: integer
          minimum: 0
    MavenDependencyResolution:
      type: object
      description: Information about dependency resolution.
      required:
        - serialDependencyResolutionTime
        - networkRequestCount
        - serialNetworkRequestTime
        - wallClockNetworkRequestTime
        - fileDownloadSize
        - fileDownloadCount
      properties:
        serialDependencyResolutionTime:
          description: The total cumulative time, in milliseconds, spent resolving dependencies. The process of resolving a dependency involves fetching metadata from remote repositories, determining the appropriate version to use, and ultimately fetching the dependency artifact.
          format: int64
          type: integer
          minimum: 0
        networkRequestCount:
          description: This represents the total count of network requests made during configuration resolution.
          format: int64
          type: integer
        serialNetworkRequestTime:
          description: The duration in milliseconds representing the sum of times for potentially parallel network requests. It does not reflect wall clock time but offers a rough estimation of network activity.
          format: int64
          type: integer
          minimum: 0
        wallClockNetworkRequestTime:
          description: The estimate in milliseconds representing the wall clock time spent on network requests during the current build. It is calculated by comparing the critical path of project executions with and without network requests, converted to wall clock time.
          format: int64
          type: integer
          minimum: 0
        fileDownloadSize:
          type: integer
          format: int64
          minimum: 0
          description: The total number of bytes downloaded for dependencies. It accounts only for the bytes of the files (e.g. POMs, JARs) downloaded and not the total network transfer.
        fileDownloadCount:
          type: integer
          format: int64
          minimum: 0
          description: The total number of successfully downloaded files.
        methods:
          type: object
          description: A breakdown of the network activity by HTTP method, when available.
          additionalProperties:
            $ref: '#/components/schemas/MavenDependencyResolutionSubset'
        repositories:
          type: object
          description: |
            A breakdown of the network activity by repository URL. This is empty when no repositories were captured.
          additionalProperties:
            $ref: '#/components/schemas/MavenDependencyResolutionSubset'
        repositoryMethods:
          type: object
          description: A breakdown of the network activity by HTTP method and repository, when available.
          additionalProperties:
            $ref: '#/components/schemas/MavenDependencyResolutionSubset'
    MavenPlugin:
      type: object
      required:
        - groupId
        - artifactId
        - version
        - executedGoals
        - modules
      properties:
        groupId:
          type: string
          description: The plugin group ID.
        artifactId:
          type: string
          description: The plugin artifact ID.
        name:
          type: string
          description: The name of the plugin. May be `null` in cases where this is not defined or captured.
          nullable: true
        version:
          type: string
          description: The plugin version.
        executedGoals:
          type: array
          description: The list of executed plugin goals. May be empty if none of the plugin goals are executed in this build.
          items:
            type: string
        modules:
          type: array
          description: The list of short form coordinates of the modules where the plugin is applied, in the format `groupId:artifactId`.
          items:
            type: string
        goalPrefix:
          type: string
          description: The prefix defined by the plugin for its goals. Can be `null` if not specified by the plugin.
          nullable: true
        requiredMavenVersion:
          type: string
          description: The required Maven version for the plugin. Can be `null` if not specified by the plugin.
          nullable: true
    MavenPlugins:
      type: object
      properties:
        plugins:
          type: array
          description: A list of applied plugins in a Maven build.
          items:
            $ref: '#/components/schemas/MavenPlugin'
    MavenExtension:
      type: object
      required:
        - type
      properties:
        groupId:
          type: string
          description: The extension group ID. May be null if it cannot be retrieved by the Develocity extension.
          nullable: true
        artifactId:
          type: string
          description: The extension artifact ID. May be null if it cannot be retrieved by the Develocity extension.
          nullable: true
        version:
          type: string
          description: The extension version. May be null if it cannot be retrieved by the Develocity extension.
          nullable: true
        type:
          type: string
          description: |
            The extension application type. * `CORE` - A core extension, provided in the lib folder of the Maven installation. * `MAVEN_EXT_CLASSPATH` - A core extension provided via the -Dmaven.ext.class.path system property.   * `LIB_EXT` - A core extension, provided in the lib/ext folder of the Maven installation. * `PROJECT` - A project extension, provided via a declaration in .mvn/extensions.xml in the Maven working directory.  * `POM` - A build extension, provided via a declaration in the build section of the top level project pom.xml * `UNKNOWN` - An extension for which none of the other types match.
          enum:
            - CORE
            - MAVEN_EXT_CLASSPATH
            - LIB_EXT
            - PROJECT
            - POM
            - UNKNOWN
    MavenExtensions:
      type: object
      properties:
        extensions:
          type: array
          description: A list of applied extensions in a Maven build.
          items:
            $ref: '#/components/schemas/MavenExtension'
    MavenResourceUsage:
      type: object
      properties:
        totalMemory:
          type: integer
          format: int64
          description: The physical memory of the system in bytes. Can be `null` if the metrics could not be captured.
          nullable: true
        total:
          type: object
          $ref: '#/components/schemas/ResourceUsageBreakdown'
          description: |
            The resource usage breakdown spanning the entire duration of the build.
            Can be `null` if resource usage data is not available, because its capturing was not enabled or no data points were captured for the build.
          nullable: true
        nonExecution:
          type: object
          $ref: '#/components/schemas/ResourceUsageBreakdown'
          description: |
            The resource usage breakdown spanning the non-execution phase of the build.
            This includes the time to start and initialize Maven and discover all projects.
            Can be `null` if resource usage data is not available, because its capturing was not enabled or no data points were captured for the non-execution phase of build.
          nullable: true
        execution:
          type: object
          $ref: '#/components/schemas/ResourceUsageBreakdown'
          nullable: true
          description: |
            The resource usage breakdown spanning the execution phase of the build.
            This represents the elapsed time from the start of the execution of the first Maven project to the end of the build.
            Can be `null` if resource usage data is not available, because its capturing was not enabled or no data points were captured for the execution phase of the build.
    MavenBuildInitializationAndDiscoveryTimeBreakdown:
      type: object
      description: The time breakdown of the initialization and discovery phase of a Maven build.
      required:
        - total
        - settings
        - toolchains
        - other
      properties:
        total:
          type: integer
          format: int64
          description: The elapsed time from the very start of the build to the start of the execution of the first project in milliseconds.
        settings:
          type: integer
          format: int64
          description: The elapsed time taken to read the settings of the build in milliseconds.
        toolchains:
          type: integer
          format: int64
          description: The elapsed time taken to read the toolchain settings of the build in milliseconds.
        projectDiscovery:
          type: integer
          format: int64
          nullable: true
          description: The elapsed time taken to discover all projects included in the build in milliseconds. `null` if the build failed before the project discovery phase.
        other:
          type: integer
          format: int64
          description: Any other elapsed time between the start of the build and the start of the execution of the first project in milliseconds.
    MavenBuildExecutionTimeBreakdown:
      type: object
      description: The time breakdown of the execution phase of a Maven build.
      required:
        - total
      properties:
        total:
          type: integer
          format: int64
          description: The elapsed time from the start of the execution of the first project to the end of the build in milliseconds.
        goalExecution:
          type: integer
          format: int64
          nullable: true
          description: The elapsed time from the start of the execution of the first project to the end of the execution of the last project in milliseconds. `null` if the build failed before the goal execution phase.
        endOfBuild:
          type: integer
          format: int64
          nullable: true
          description: The elapsed time from the end of the execution of the last project to the end of the build in milliseconds. `null` if the build failed before the end of build phase.
    MavenBuildTimeBreakdown:
      type: object
      description: The build time breakdown of a Maven build.
      required:
        - total
        - initializationAndDiscovery
      properties:
        total:
          type: integer
          format: int64
          description: Total duration of the build in milliseconds.
        initializationAndDiscovery:
          $ref: '#/components/schemas/MavenBuildInitializationAndDiscoveryTimeBreakdown'
        execution:
          $ref: '#/components/schemas/MavenBuildExecutionTimeBreakdown'
    MavenBuildJvmMemoryUsage:
      type: object
      description: Memory usage stats of the Maven JVM while running the build.
      required:
        - totalGarbageCollectionTime
      properties:
        totalGarbageCollectionTime:
          type: integer
          format: int64
          description: The total garbage collection time.
        memoryPools:
          type: array
          description: A list of all the heap memory pools of the JVM build process and their peak usage.
          items:
            $ref: '#/components/schemas/MemoryPoolUsage'
    MavenBuildProfileOverview:
      type: object
      description: The performance profile overview of a Maven build.
      required:
        - breakdown
      properties:
        breakdown:
          $ref: '#/components/schemas/MavenBuildTimeBreakdown'
        memoryUsage:
          $ref: '#/components/schemas/MavenBuildJvmMemoryUsage'
    MavenDependency:
      allOf:
        - $ref: '#/components/schemas/CommonDependency'
        - type: object
    MavenDependencies:
      type: object
      description: |
        Dependencies of a Maven build. While there are many possible types of dependencies, initial support is for library dependencies of the software. Dependency identifiers are based on the package url (purl) [specification](https://github.com/package-url/purl-spec).
      properties:
        dependencies:
          type: array
          description: List of dependencies of a Maven build.
          items:
            $ref: '#/components/schemas/MavenDependency'
    BazelAttributes:
      type: object
      description: The attributes of a Bazel build.
      required:
        - id
        - buildStartTime
        - buildDuration
        - bazelVersion
        - command
        - tags
        - values
        - links
        - hasFailed
      properties:
        id:
          type: string
          description: The Build Scan ID.
        invocationId:
          type: string
          nullable: true
          description: The Bazel-provided build invocation ID. Null when not known.
        buildStartTime:
          type: integer
          format: int64
          description: The time when the build starts, as milliseconds since Epoch.
        buildDuration:
          type: integer
          format: int64
          description: The duration of the build, as milliseconds.
        bazelVersion:
          type: string
          description: The Bazel version used.
        command:
          type: string
          description: The Bazel command used (e.g. build, test, run).
        targetPatterns:
          type: array
          items:
            type: string
          description: The list of requested target patterns.
        exitCode:
          type: integer
          format: int32
          nullable: true
          description: The exit code of the Bazel process.
        user:
          type: string
          nullable: true
          description: The BUILD_USER workspace value, if set.
        host:
          type: string
          nullable: true
          description: The BUILD_HOST workspace value, if set.
        tags:
          type: array
          items:
            type: string
          description: The list of Build Scan tags.
        values:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesValue'
          description: The list of Build Scan values.
        links:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesLink'
          description: The list of Build Scan links.
        moduleName:
          type: string
          description: The name of the module, or workspace. `null` in case of very early build failure.
          nullable: true
        hasFailed:
          type: boolean
          description: True when the build fails, false otherwise.
    BazelCriticalPath:
      type: object
      description: The reported actions of the critical path.
      properties:
        actions:
          type: array
          description: The actions of the critical path. Null when the build failed early, or when the build profile was not available to Develocity.
          items:
            type: object
            required:
              - name
              - category
              - duration
            properties:
              name:
                description: The name of the action.
                type: string
              category:
                description: The category of the action.
                type: string
              duration:
                description: The duration of the action, as milliseconds.
                type: integer
                format: int64
    NpmCommand:
      type: object
      description: The command run on an npm build.
      required:
        - command
      properties:
        command:
          type: string
          nullable: false
          description: The command that was run (e.g. in "npm install", this would be "install").
        arguments:
          type: array
          items:
            type: string
          description: The arguments passed to the command (e.g. in "npm run script.js", this would be ["script.js"]).
    NpmAttributes:
      type: object
      description: The attributes of an npm build.
      required:
        - id
        - buildStartTime
        - buildDuration
        - npmVersion
        - npmAgentVersion
        - command
        - links
        - tags
        - values
        - hasFailed
      properties:
        id:
          type: string
          description: The Build Scan ID.
        buildStartTime:
          type: integer
          format: int64
          description: The time when the build starts, as milliseconds since Epoch.
        buildDuration:
          type: integer
          format: int64
          description: The duration of the build, as milliseconds.
        exitCode:
          type: integer
          format: int32
          nullable: true
          description: The exit code of the npm process.
        nodejsVersion:
          type: string
          description: The Node.js version used.
        npmVersion:
          type: string
          description: The npm version used.
        npmAgentVersion:
          type: string
          description: The version of the Develocity npm agent.
        command:
          $ref: '#/components/schemas/NpmCommand'
        links:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesLink'
          description: The list of Build Scan links.
        tags:
          type: array
          items:
            type: string
          description: The list of Build Scan tags.
        values:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesValue'
          description: The list of Build Scan values.
        user:
          type: string
          nullable: true
          description: The username of the user that ran the build.
        host:
          type: string
          nullable: true
          description: The hostname of the user that ran the build, if set.
        packageName:
          type: string
          description: The name of the package. `null` in case of very early build failure.
          nullable: true
        hasFailed:
          type: boolean
          description: True when the build fails, false otherwise.
        hasVerificationFailure:
          type: boolean
          description: |
            Set only if the build failed: true when the build has at least one failure classified as "Verification", false otherwise.  The Verification classification is meant for failures that are expected within a standard application development lifecycle. They typically represent a problem with the developer’s inputs to the build such as the source code.
        hasNonVerificationFailure:
          type: boolean
          description: |
            Set only if the build failed: true when the build has at least one failure classified as "Non-verification", false otherwise.  The Non-verification classification is meant for failures that are typically not expected within a standard application development lifecycle, such as build configuration failures, dependency resolution failures, and infrastructure failures.
    NpmDependency:
      allOf:
        - $ref: '#/components/schemas/CommonDependency'
        - type: object
    NpmDependencies:
      type: object
      description: |
        Dependencies of an npm build. While there are many possible types of dependencies, initial support is for library dependencies of the software. Dependency identifiers are based on the package url (purl) [specification](https://github.com/package-url/purl-spec).
      properties:
        dependencies:
          type: array
          description: List of dependencies of an npm build.
          items:
            $ref: '#/components/schemas/NpmDependency'
    NpmNetworkActivitySubset:
      type: object
      properties:
        networkRequestCount:
          description: This represents the total count of network requests for this subset of requests.
          format: int64
          type: integer
          minimum: 0
        serialNetworkRequestTime:
          description: The duration in milliseconds representing the sum of times for potentially parallel network requests for this subset of requests. It does not reflect wall clock time but offers a rough estimation of network activity.
          format: int64
          type: integer
          minimum: 0
        fileDownloadSize:
          type: integer
          format: int64
          minimum: 0
          description: The total number of bytes downloaded for dependencies from this subset of requests. It accounts only for the bytes of the files (e.g. TGZs, pakuments) downloaded and not the total network transfer.
        fileDownloadCount:
          type: integer
          format: int64
          minimum: 0
          description: The total number of successfully downloaded files from this subset of requests.
        wallClockNetworkRequestTime:
          description: The estimate in milliseconds representing the wall clock time spent on network requests during the current build for this subset of requests.
          format: int64
          type: integer
          minimum: 0
    NpmNetworkActivity:
      type: object
      description: Information about the network activity of the build.
      required:
        - networkRequestCount
        - serialNetworkRequestTime
        - wallClockNetworkRequestTime
        - fileDownloadSize
        - fileDownloadCount
      properties:
        networkRequestCount:
          description: This represents the total count of network requests made during dependency resolution.
          format: int64
          type: integer
        serialNetworkRequestTime:
          description: The duration in milliseconds representing the sum of times for potentially parallel network requests. It does not reflect wall clock time but offers a rough estimation of network activity.
          format: int64
          type: integer
          minimum: 0
        wallClockNetworkRequestTime:
          description: The estimate in milliseconds representing the wall clock time spent on network requests during the current build.
          format: int64
          type: integer
          minimum: 0
        fileDownloadSize:
          type: integer
          format: int64
          minimum: 0
          description: The total number of bytes downloaded for dependencies. It accounts only for the bytes of the files (e.g. TGZs, pakuments) downloaded and not the total network transfer.
        fileDownloadCount:
          type: integer
          format: int64
          minimum: 0
          description: The total number of successfully downloaded files.
        methods:
          type: object
          description: A breakdown of the network activity by HTTP method, when available.
          additionalProperties:
            $ref: '#/components/schemas/NpmNetworkActivitySubset'
        registries:
          type: object
          description: |
            A breakdown of the network activity by registry URL. This is empty when no registries were captured.
          additionalProperties:
            $ref: '#/components/schemas/NpmNetworkActivitySubset'
        registryMethods:
          type: object
          description: A breakdown of the network activity by HTTP method and registry, when available.
          additionalProperties:
            $ref: '#/components/schemas/NpmNetworkActivitySubset'
    PythonAttributes:
      type: object
      description: The attributes of a Python build.
      required:
        - id
        - buildStartTime
        - buildDuration
        - pythonVersion
        - pythonAgentVersion
        - command
        - links
        - tags
        - values
        - hasFailed
      properties:
        id:
          type: string
          description: The Build Scan ID.
        buildStartTime:
          type: integer
          format: int64
          description: The time when the build starts, as milliseconds since Epoch.
        buildDuration:
          type: integer
          format: int64
          description: The duration of the build, as milliseconds.
        exitCode:
          type: integer
          format: int32
          description: The exit code of the Python process.
        exception:
          type: string
          nullable: true
          description: The exception message thrown by the Python process, if any.
        pythonVersion:
          type: string
          description: The Python version used in the build.
        pythonAgentVersion:
          type: string
          description: The version of the Develocity Python agent.
        command:
          type: array
          items:
            type: string
          description: The command and arguments requested in the build.
        links:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesLink'
          description: The list of Build Scan links.
        tags:
          type: array
          items:
            type: string
          description: The list of Build Scan tags.
        values:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesValue'
          description: The list of Build Scan values.
        user:
          type: string
          nullable: true
          description: The username of the user that ran the build.
        host:
          type: string
          nullable: true
          description: The hostname of the user that ran the build, if set.
        hasFailed:
          type: boolean
          description: True when the build fails, false otherwise.
        projectName:
          type: string
          description: The name of the project. `null` in case of very early build failure.
          nullable: true
    SbtDevelocitySettings:
      type: object
      description: Settings for Develocity.
      required:
        - backgroundPublicationEnabled
      properties:
        backgroundPublicationEnabled:
          type: boolean
          description: Indicates whether background Build Scan publication is enabled for the build. See https://gradle.com/help/sbt-plugin-switches-background-build-scan-publication.
        buildOutputCapturingEnabled:
          type: boolean
          description: Indicates whether to capture build logging output for the build. `null` if Develocity sbt plugin version is < `1.0`. See https://gradle.com/help/sbt-plugin-capturing-build-output.
          nullable: true
        resourceUsageCapturingEnabled:
          type: boolean
          description: Indicates whether resource usage capturing is enabled for the build. `null` if Develocity sbt plugin version is < `1.1`. See https://gradle.com/help/sbt-plugin-capturing-resource-usage.
          nullable: true
    SbtBuildOptions:
      type: object
      description: sbt build options for this build.
      required:
        - useCoursierEnabled
        - offlineModeEnabled
        - turboEnabled
        - parallelExecutionEnabled
        - semanticDbScalacPluginEnabled
        - interactiveModeEnabled
      properties:
        useCoursierEnabled:
          type: boolean
          description: Indicates whether Coursier was used for dependency resolution.
        offlineModeEnabled:
          type: boolean
          description: Indicates whether the build was configured to run offline.
        turboEnabled:
          type: boolean
          description: Indicates whether the build was configured to use turbo mode.
        parallelExecutionEnabled:
          type: boolean
          description: Indicates whether the build was configured to use parallel tasks execution.
        semanticDbScalacPluginEnabled:
          type: boolean
          description: Indicates whether the projects in the build were configured to use the SemanticDB Scalac plugin.
        interactiveModeEnabled:
          type: boolean
          description: Indicates whether the build was run from the sbt shell.
    SbtAttributes:
      type: object
      description: The attributes of an sbt build.
      required:
        - id
        - buildStartTime
        - buildDuration
        - sbtVersion
        - pluginVersion
        - rootProjectName
        - requestedCommands
        - hasFailed
        - tags
        - values
        - links
        - develocitySettings
        - buildOptions
        - environment
      properties:
        id:
          type: string
          description: The Build Scan ID.
        buildStartTime:
          type: integer
          format: int64
          description: The time when the build starts, as milliseconds since Epoch.
        buildDuration:
          type: integer
          format: int64
          description: The duration of the build, as milliseconds.
        sbtVersion:
          type: string
          description: The sbt version used.
        pluginVersion:
          type: string
          description: The Develocity sbt plugin version used.
        rootProjectName:
          type: string
          description: The name of the root project, as reported by sbt.
        requestedCommands:
          type: array
          items:
            type: string
          description: The list of requested commands.
        hasFailed:
          type: boolean
          description: True when the build fails, false otherwise.
        hasVerificationFailure:
          type: boolean
          description: |
            Set only if the build fails: true when the build has at least one failure classified as "Verification", false otherwise.  The Verification classification is meant for failures that are expected within a standard application development lifecycle. They typically represent a problem with the developer’s inputs to the build such as the source code.
        hasNonVerificationFailure:
          type: boolean
          description: |
            Set only if the build fails: true when the build has at least one failure classified as "Non-verification", false otherwise.  The Non-verification classification is meant for failures that are typically not expected within a standard application development lifecycle, such as build configuration failures, dependency resolution failures, and infrastructure failures.
        tags:
          type: array
          items:
            type: string
          description: The list of Build Scan tags.
        values:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesValue'
          description: The list of Build Scan values.
        links:
          type: array
          items:
            $ref: '#/components/schemas/BuildAttributesLink'
          description: The list of Build Scan links.
        develocitySettings:
          $ref: '#/components/schemas/SbtDevelocitySettings'
        buildOptions:
          $ref: '#/components/schemas/SbtBuildOptions'
        environment:
          $ref: '#/components/schemas/BuildAttributesEnvironment'
    BuildModels:
      type: object
      description: Optional requested models associated with the build.
      properties:
        gradleAttributes:
          description: The attributes of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleAttributes'
        gradleTestPerformance:
          description: Test performance-related metrics of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleTestPerformance'
        gradleBuildCachePerformance:
          description: The build cache performance of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleBuildCachePerformance'
        gradleProjects:
          description: List of Gradle projects, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleProjects'
        gradleNetworkActivity:
          description: Information about the network activity of the build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleNetworkActivity'
        gradleArtifactTransformExecutions:
          description: The artifact transform execution list of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleArtifactTransformExecutions'
        gradleDeprecations:
          description: The deprecation list of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleDeprecations'
        gradlePlugins:
          description: The plugins applied in a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradlePlugins'
        gradleResourceUsage:
          description: The resource usage gathered while executing a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleResourceUsage'
        gradleBuildProfileOverview:
          description: The performance profile overview of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleBuildProfileOverview'
        gradleConfigurationCache:
          description: The configuration cache result of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleConfigurationCache'
        gradleDependencies:
          description: The dependencies of a Gradle build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/GradleDependencies'
        mavenAttributes:
          description: The attributes of a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenAttributes'
        mavenTestPerformance:
          description: Test performance-related metrics of a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenTestPerformance'
        mavenBuildCachePerformance:
          description: The build cache performance of a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenBuildCachePerformance'
        mavenModules:
          description: List of Maven modules, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenModules'
        mavenDependencyResolution:
          description: Information about dependency resolution, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenDependencyResolution'
        mavenPlugins:
          description: The plugins applied in a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenPlugins'
        mavenExtensions:
          description: The extensions applied in a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenExtensions'
        mavenResourceUsage:
          description: The resource usage gathered while executing a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenResourceUsage'
        mavenBuildProfileOverview:
          description: The performance profile overview of a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenBuildProfileOverview'
        mavenDependencies:
          description: The dependencies of a Maven build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/MavenDependencies'
        bazelAttributes:
          description: The attributes of a Bazel build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/BazelAttributes'
        bazelCriticalPath:
          description: The critical path of a Bazel build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/BazelCriticalPath'
        npmAttributes:
          description: The attributes of an npm build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/NpmAttributes'
        npmDependencies:
          description: The dependencies of an npm build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/NpmDependencies'
        npmNetworkActivity:
          description: Information about the network activity of the build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/NpmNetworkActivity'
        pythonAttributes:
          description: The attributes of a Python build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/PythonAttributes'
        sbtAttributes:
          description: The attributes of an sbt build, or a report of a problem encountered.
          properties:
            problem:
              $ref: '#/components/schemas/ApiProblem'
            model:
              $ref: '#/components/schemas/SbtAttributes'
    Build:
      type: object
      description: A build with common attributes.
      required:
        - id
        - availableAt
        - buildToolType
        - buildToolVersion
        - buildAgentVersion
      properties:
        id:
          type: string
          description: The Build Scan ID.
        availableAt:
          type: integer
          format: int64
          description: A unix-epoch-time in milliseconds referring to the instant that Develocity completed receiving and processing the build.
        buildToolType:
          type: string
          description: The build tool type of the build.
        buildToolVersion:
          type: string
          description: The build tool version used.
        buildAgentVersion:
          type: string
          description: The build agent version used.
        models:
          $ref: '#/components/schemas/BuildModels'
    Builds:
      type: array
      items:
        $ref: '#/components/schemas/Build'
      description: List of builds with common attributes.
    AvailabilityWaitTimeoutSecs:
      type: integer
      minimum: 0
      description: The time in seconds the server should wait for ingestion before returning a wait timeout response.
    SkipUnavailableModels:
      type: boolean
      description: Will skip build models that are not available at the time of the handling of the call.
    BuildQuery:
      type: object
      properties:
        models:
          $ref: '#/components/schemas/BuildModelNames'
        allModels:
          type: boolean
          default: false
          description: |
            Whether to include all build models for the build.
            If set to `true`, the value of the `models` parameter is ignored.
        availabilityWaitTimeoutSecs:
          $ref: '#/components/schemas/AvailabilityWaitTimeoutSecs'
        skipUnavailableModels:
          $ref: '#/components/schemas/SkipUnavailableModels'
    BuildModelQuery:
      type: object
      properties:
        availabilityWaitTimeoutSecs:
          $ref: '#/components/schemas/AvailabilityWaitTimeoutSecs'
    BuildFailuresQuery:
      allOf:
        - $ref: '#/components/schemas/BuildModelQuery'
        - type: object
          properties:
            maxFailures:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000
              default: 100
              description: The maximum number of failures to return for each failure list independently. This limit applies separately to the buildFailures and testFailures lists.
    GradleBuildFailure:
      type: object
      required:
        - header
        - message
      properties:
        header:
          type: string
          description: Failure header.
        message:
          type: string
          description: Failure message.
        relevantLog:
          type: string
          description: Relevant console log. `null` if no relevant console log has been found.
          nullable: true
        location:
          type: string
          description: Failure location, which can be a build script or source file. `null` when the failure is not location aware.
          nullable: true
        taskPath:
          type: string
          description: The task path associated with this failure. `null` if no task is associated with the failure.
          nullable: true
        stacktrace:
          type: string
          description: The stacktrace of this failure. `null` if there is no stacktrace available.
          nullable: true
    TestId:
      type: object
      description: Information required to uniquely identify a test.
      required:
        - workUnitName
        - suiteName
      properties:
        workUnitName:
          type: string
          description: Work unit name that executed the test.
        suiteName:
          type: string
          description: Suite name of the test, in most cases the class name.
        testName:
          type: string
          description: Name of the test. `null` when the test is a suite.
          nullable: true
    TestFailure:
      type: object
      required:
        - id
        - message
      properties:
        id:
          $ref: '#/components/schemas/TestId'
        message:
          type: string
          description: Failure message.
        stacktrace:
          type: string
          description: The failure stacktrace. `null` if there is no stacktrace available.
          nullable: true
    GradleFailures:
      type: object
      description: The build and test failures of a Gradle build. `null` if the build is not a Gradle build.
      nullable: true
      properties:
        buildFailures:
          description: A list of build failures.
          items:
            $ref: '#/components/schemas/GradleBuildFailure'
          type: array
        testFailures:
          description: A list of test failures. `null` if tests are not captured.
          items:
            $ref: '#/components/schemas/TestFailure'
          type: array
          nullable: true
    MavenBuildFailure:
      type: object
      required:
        - header
        - message
      properties:
        header:
          type: string
          description: Failure header.
        message:
          type: string
          description: Failure message.
        relevantLog:
          type: string
          description: Relevant console log. `null` if no relevant console log has been found.
          nullable: true
        goalExecutionId:
          type: string
          description: The goal execution id associated with this failure. `null` if no goal execution is associated with the failure.
          nullable: true
        stacktrace:
          type: string
          description: The stacktrace of this failure. `null` if there is no stacktrace available.
          nullable: true
    MavenFailures:
      type: object
      description: The build and test failures of a Maven build. `null` if the build is not a Maven build.
      nullable: true
      properties:
        buildFailures:
          description: A list of build failures.
          items:
            $ref: '#/components/schemas/MavenBuildFailure'
          type: array
        testFailures:
          description: A list of test failures. `null` if tests are not captured.
          items:
            $ref: '#/components/schemas/TestFailure'
          type: array
          nullable: true
    NpmBuildFailure:
      type: object
      required:
        - header
        - message
      properties:
        header:
          type: string
          description: Failure header.
        message:
          type: string
          description: Failure message.
        relevantLog:
          type: string
          description: Relevant console log. `null` if no relevant console log has been found.
          nullable: true
        processName:
          type: string
          description: The full process name (executable name and parameters) for which this failure was detected.
          nullable: false
    NpmFailures:
      type: object
      description: The build and test failures of an npm build. `null` if the build is not an npm build.
      nullable: true
      properties:
        buildFailures:
          description: A list of build failures.
          items:
            $ref: '#/components/schemas/NpmBuildFailure'
          type: array
        testFailures:
          description: A list of test failures. `null` if tests are not captured.
          items:
            $ref: '#/components/schemas/TestFailure'
          type: array
          nullable: true
    BuildFailures:
      type: object
      description: |
        The unified failures response for a build, containing build tool-specific failure information.
        Each build tool (gradle, maven, npm) has its own nested object with failures if applicable for that build.
      required:
        - buildToolType
      properties:
        buildToolType:
          type: string
          description: The build tool type of the build.
        gradle:
          $ref: '#/components/schemas/GradleFailures'
        maven:
          $ref: '#/components/schemas/MavenFailures'
        npm:
          $ref: '#/components/schemas/NpmFailures'
    FailureType:
      type: string
      enum:
        - build
        - test
    FailureGroupsQuery:
      type: object
      required:
        - query
      properties:
        failureTypes:
          type: array
          description: Allows restricting the search to failure types. By default all failure types are considered.
          default:
            - build
            - test
          items:
            $ref: '#/components/schemas/FailureType'
        query:
          type: string
          description: |
            A query for filtering the builds considered for failure groups, written in the Develocity advanced search query language.
            The query must contain a restriction on `buildStartTime` to ensure the search is bounded in time.
            See: https://gradle.com/help/advanced-search
        maxFailureGroups:
          description: The maximum number of failure groups to return.
          type: integer
          format: int32
          default: 100
          minimum: 1
          maximum: 1000
        maxBuildIdsPerGroup:
          description: The maximum number of buildIds to return in a given FailureGroup.
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 1000
    Failure:
      type: object
      description: |
        An individual failure instance.
      required:
        - message
      properties:
        message:
          type: string
          description: The failure message.
        relevantLog:
          type: string
          description: Relevant console log. `null` if no relevant console log has been found.
          nullable: true
    FailureGroup:
      type: object
      description: |
        A failure group.
      required:
        - type
        - failureCount
        - firstOccurrence
        - lastOccurrence
        - exampleFailure
        - buildIds
      properties:
        type:
          $ref: '#/components/schemas/FailureType'
        failureCount:
          type: integer
          format: int64
          description: The number of failures in this group.
        firstOccurrence:
          type: string
          format: date-time
          description: |
            The timestamp of the first occurrence of this failure group.
            This is the timestamp of the earliest failure that belongs to this group and therefore may be outside the time range of the query.
        lastOccurrence:
          type: string
          format: date-time
          description: |
            The timestamp of the last occurrence of this failure group.
            This is the timestamp of the latest failure that belongs to this group and therefore may be outside the time range of the query.
        exampleFailure:
          $ref: '#/components/schemas/Failure'
        buildIds:
          type: array
          description: Build Scan IDs for builds that contain failures that belong to this failure group.
          items:
            type: string
    FailureGroupsResponse:
      type: object
      description: A list of failure groups.
      required:
        - content
      properties:
        content:
          type: array
          description: A list of failure groups.
          items:
            $ref: '#/components/schemas/FailureGroup'
    PageQuery:
      type: object
      properties:
        pageNumber:
          type: integer
          format: int32
          description: |
            The index of the page to retrieve.
            The first page's index is zero.
          minimum: 0
          default: 0
        pageSize:
          type: integer
          format: in32
          description: The maximum number of elements to include in the fetched page.
          minimum: 0
    ProjectGroupId:
      type: string
      description: The unique identifier for the project group configured for project-level access control in Develocity. Must not contain whitespace.
      minLength: 1
      maxLength: 215
      pattern: ^\S+$
    ProjectReference:
      type: object
      description: A container for a project ID.
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/ProjectId'
    ProjectGroup:
      type: object
      description: A group of projects that can be assigned to users.
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/ProjectGroupId'
        displayName:
          type: string
          description: The label used when displaying the project group.
          maxLength: 266
        description:
          type: string
          description: The description of the project group.
          maxLength: 1024
        identityProviderAttributeValue:
          type: string
          description: |
            The value of an identity provider attribute this project group is associated with.
            Users who have this value in the identity provider attribute will be assigned this project group.
          minLength: 1
          maxLength: 256
        projects:
          type: array
          items:
            $ref: '#/components/schemas/ProjectReference'
    PageMetadata:
      type: object
      description: |
        Information about the current and available page of elements.
        Pages are returned from list operations which could contain a lot of elements.
        One page contains a subset of the available elements.
        API users can retrieve all pages in order to retrieve all of the available elements.
      required:
        - number
        - size
        - totalElements
        - totalPages
      properties:
        number:
          type: integer
          format: int32
          description: The index of the current page. Page indexes start at zero.
          minimum: 0
        size:
          type: integer
          format: int32
          description: The number of elements in the current page.
          minimum: 0
        totalPages:
          type: integer
          format: int32
          description: The total number of pages.
          minimum: 0
        totalElements:
          type: integer
          format: int32
          description: The total number of elements across all pages.
          minimum: 0
    ProjectGroupsPage:
      type: object
      description: A paged list of project groups configured for project-level access control in Develocity.
      required:
        - content
        - page
      properties:
        content:
          type: array
          description: A list of project groups configured for project-level access control in Develocity.
          items:
            $ref: '#/components/schemas/ProjectGroup'
        page:
          $ref: '#/components/schemas/PageMetadata'
    Project:
      type: object
      description: A project configured for project-level access control in Develocity.
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/ProjectId'
        displayName:
          type: string
          description: The label used when displaying the project.
          maxLength: 266
        description:
          type: string
          description: The description of the project group.
          maxLength: 1024
    ProjectsPage:
      type: object
      description: A paged list of projects configured for project-level access control in Develocity.
      required:
        - content
        - page
      properties:
        content:
          type: array
          description: A list of projects configured for project-level access control in Develocity.
          items:
            $ref: '#/components/schemas/Project'
        page:
          $ref: '#/components/schemas/PageMetadata'
    TestDistributionAgentPoolId:
      description: The unique identifier of the agent pool.
      type: string
      minLength: 8
      maxLength: 8
      pattern: ^[a-z2-7]{8}$
    TestDistributionAgentPoolConfigurationWithId:
      description: An agent pool configuration.
      type: object
      required:
        - id
        - name
        - minimumSize
        - maximumSize
        - capabilities
        - orderIndex
      properties:
        id:
          $ref: '#/components/schemas/TestDistributionAgentPoolId'
        name:
          type: string
          description: The alias or display name of the agent pool.
          minLength: 1
          example: functional-test-agents
        minimumSize:
          type: integer
          format: int32
          minimum: 0
        maximumSize:
          type: integer
          format: int32
          minimum: 0
        orderIndex:
          description: The order in which the agent pool is considered for allocation. Lower values are considered first.
          type: integer
          format: int32
          minimum: 0
        capabilities:
          type: array
          items:
            type: string
            pattern: ^([-\w.]+)(?:=([-\w.]+))?$
          example:
            - jdk=17
            - os=linux
            - functional-test
        restrictAccessToProjectGroups:
          type: boolean
          description: |
            Controls whether this pool can be used by everyone, or only the assigned project groups.
            A `true` value implies that `projectGroupIds` is present and has at least one entry.
            Conversely, a `false` value implies that `projectGroupIds` is empty.
          default: false
        projectGroupIds:
          type: array
          description: |
            Controls which project groups can use this pool.
            If it is empty, then `restrictAccessToProjectGroups` must be `false`.
            Conversely, if it has values then `restrictAccessToProjectGroups` must be `true`.
          items:
            type: string
            pattern: ^[^\\s]{1,215}$
            example: project-group-a
    TestDistributionAgentPoolPage:
      description: A list of agent pools.
      type: object
      required:
        - content
      properties:
        content:
          type: array
          description: A list of agent pool IDs.
          items:
            $ref: '#/components/schemas/TestDistributionAgentPoolConfigurationWithId'
    TestDistributionAgentPoolConfiguration:
      description: An agent pool configuration.
      type: object
      required:
        - name
        - minimumSize
        - maximumSize
        - capabilities
      properties:
        name:
          type: string
          description: The alias or display name of the agent pool.
          minLength: 1
          example: functional-test-agents
        minimumSize:
          type: integer
          format: int32
          minimum: 0
        maximumSize:
          type: integer
          format: int32
          minimum: 0
        orderIndex:
          description: The order in which the agent pool is considered for allocation. Lower values are considered first.
          type: integer
          format: int32
          nullable: true
          minimum: 0
        capabilities:
          type: array
          items:
            type: string
            pattern: ^([-\w.]+)(?:=([-\w.]+))?$
          example:
            - jdk=17
            - os=linux
            - functional-test
        restrictAccessToProjectGroups:
          type: boolean
          description: |
            Controls whether this pool can be used by everyone, or only the assigned project groups.
            A `true` value implies that `projectGroupIds` is present and has at least one entry.
            Conversely, a `false` value implies that `projectGroupIds` is empty.
          default: false
        projectGroupIds:
          type: array
          description: |
            Controls which project groups can use this pool.
            If it is empty, then `restrictAccessToProjectGroups` must be `false`.
            Conversely, if it has values then `restrictAccessToProjectGroups` must be `true`.
          items:
            type: string
            pattern: ^[^\\s]{1,215}$
            example: project-group-a
    TestDistributionAgentPoolRegistrationKeyPrefix:
      description: A Test Distribution pool-specific agent registration key prefix.
      type: object
      required:
        - keyPrefix
        - createdAt
      properties:
        keyPrefix:
          type: string
          minLength: 26
          maxLength: 26
          pattern: ^[a-z2-7]{26}$
          description: The registration key prefix.
        description:
          type: string
          maxLength: 100
          description: Description of the registration key to help identify it later.
          example: Used by xyz
        createdAt:
          type: string
          format: date-time
          description: When the key was created
        lastUsedAt:
          type: string
          format: date-time
          nullable: true
          description: When the key was last used
        lastUsedBy:
          type: string
          nullable: true
          description: Who used the key last
        revokedAt:
          type: string
          format: date-time
          nullable: true
          description: When the key was revoked, a non-null value implies that the key is revoked and can no longer be used to authenticate.
    TestDistributionAgentPoolRegistrationKeyPrefixPage:
      description: A list of Test Distribution pool-specific agent registration key prefixes.
      type: object
      required:
        - content
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/TestDistributionAgentPoolRegistrationKeyPrefix'
    TestDistributionAgentPoolRegistrationKeyDescription:
      description: Optional description of a Test Distribution pool-specific agent registration key.
      type: object
      properties:
        description:
          type: string
          maxLength: 100
          description: Description of the registration key to help identify it later.
          example: Used by xyz
    TestDistributionAgentPoolRegistrationKey:
      description: A Test Distribution pool-specific agent registration key.
      type: object
      required:
        - key
      properties:
        key:
          type: string
          minLength: 52
          maxLength: 52
          pattern: ^[a-z2-7]{52}$
          description: The agent API key.
        description:
          type: string
          maxLength: 100
          description: Description of the registration key to help identify it later.
          example: Used by xyz
    TestDistributionAgentPoolStatus:
      description: The status of an agent pool.
      type: object
      required:
        - id
        - name
        - minimumSize
        - maximumSize
        - connectedAgents
        - idleAgents
        - desiredAgents
      properties:
        id:
          $ref: '#/components/schemas/TestDistributionAgentPoolId'
        name:
          type: string
          description: The alias or display name of the agent pool.
          minLength: 1
        minimumSize:
          type: integer
          format: int32
        maximumSize:
          type: integer
          format: int32
        connectedAgents:
          type: integer
          format: int32
        idleAgents:
          type: integer
          format: int32
        desiredAgents:
          type: integer
          format: int32
    TestOutcome:
      type: string
      enum:
        - passed
        - failed
        - skipped
        - flaky
        - notSelected
    BuildTestsQuery:
      x-all-of-name: BuildTestsQuery
      type: object
      properties:
        workUnit:
          type: string
          description: |
            The name of the test work unit to return test results for. If not specified, all work units are included.
            May contain wildcards: an asterisk character ("*") matches an arbitrary number of characters.
        testName:
          type: string
          description: |
            The name of the test case or container to return test results for. If not specified, all tests and containers are included. 
            May contain wildcards: an asterisk character ("*") matches an arbitrary number of characters.
            The first matching test and all of its children are returned regardless of whether their names match the query or not.
        testOutcomes:
          type: array
          description: |
            Allows restricting the search to tests that had the given outcome. If not specified or empty, all tests and containers are included.
            If the field contains multiple outcome values, then tests and containers having any of the provided outcomes are returned.
            For test cases, the overall outcome is inspected. For test containers, their own outcome is inspected.
            The filter is applied to the leaves of the test hierarchy first. The deepest test or container with matching outcomes is returned 
            together with all of its parents, regardless of whether their outcomes match the query or not.
          items:
            $ref: '#/components/schemas/TestOutcome'
    TestOutcomeDistribution:
      type: object
      description: A distribution of outcomes.
      required:
        - passed
        - failed
        - skipped
        - flaky
        - notSelected
        - total
      properties:
        passed:
          type: integer
          description: The number of 'Passed' outcomes.
        failed:
          type: integer
          description: The number of 'Failed' outcomes.
        skipped:
          type: integer
          description: The number of 'Skipped' outcomes.
        flaky:
          type: integer
          description: The number of 'Flaky' outcomes.
        notSelected:
          type: integer
          description: The number of 'Not Selected' outcomes.
        total:
          type: integer
          description: The total number of outcomes.
    BuildTestsSummary:
      type: object
      description: A summary of test execution data for a build.
      required:
        - duration
        - testCasesOutcomeDistribution
        - testContainersOutcomeDistribution
      properties:
        duration:
          type: object
          required:
            - total
          properties:
            total:
              type: integer
              format: int64
              description: The sum of the elapsed wall-clock time in milliseconds of work units with tests.
            serial:
              type: integer
              format: int64
              description: |
                The sum of the time in milliseconds spent if tests and containers were running sequentially. 
                May be absent if the duration of test containers of cases is unknown (for example, the duration of forked suites is not captured in sbt).
        testCasesOutcomeDistribution:
          $ref: '#/components/schemas/TestOutcomeDistribution'
        testContainersOutcomeDistribution:
          $ref: '#/components/schemas/TestOutcomeDistribution'
    BuildTestOrContainerDuration:
      type: object
      description: Various types of test durations captured for a given test.
      properties:
        total:
          type: integer
          format: int64
          description: |
            The elapsed wall-clock time in milliseconds when the test or container is running.
            May be absent if the duration of the current test container or case is unknown. For example, the duration of forked suites is not captured in sbt.
        own:
          type: integer
          format: int64
          description: |
            The time in milliseconds spent in the setup or cleanup of test containers. 
            Absent for test cases.
        serial:
          type: integer
          format: int64
          description: |
            The sum of the time spent in milliseconds if tests and containers were running sequentially. 
            Absent for test cases.
    TestWorkUnitOutcome:
      type: string
      enum:
        - passed
        - failed
        - skipped
        - flaky
        - timedOut
    BuildTestOrContainerOutcome:
      type: object
      required:
        - overall
      properties:
        overall:
          $ref: '#/components/schemas/TestOutcome'
        own:
          $ref: '#/components/schemas/TestOutcome'
        children:
          $ref: '#/components/schemas/TestOutcome'
    BuildTestOrContainerExecution:
      type: object
      required:
        - duration
        - outcome
      properties:
        duration:
          $ref: '#/components/schemas/BuildTestOrContainerDuration'
        outcome:
          $ref: '#/components/schemas/BuildTestOrContainerOutcome'
    BuildTestOrContainer:
      type: object
      required:
        - name
        - duration
        - outcome
        - executions
        - children
      properties:
        name:
          type: string
          description: The name of the test or test container.
        duration:
          $ref: '#/components/schemas/BuildTestOrContainerDuration'
        outcome:
          $ref: '#/components/schemas/BuildTestOrContainerOutcome'
        executions:
          type: array
          description: A summary of individual test executions. A test can run multiple times in a build if test retries are configured.
          items:
            $ref: '#/components/schemas/BuildTestOrContainerExecution'
        children:
          type: array
          description: A list of child test containers or test cases that were executed in this test container.
          items:
            $ref: '#/components/schemas/BuildTestOrContainer'
    BuildTestWorkUnit:
      type: object
      description: A work unit that ran tests in a build.
      required:
        - name
        - duration
        - outcome
        - tests
      properties:
        name:
          type: string
          description: The name of the work unit.
        duration:
          $ref: '#/components/schemas/BuildTestOrContainerDuration'
        outcome:
          $ref: '#/components/schemas/TestWorkUnitOutcome'
        tests:
          type: array
          description: A list of test containers or test cases that were executed in this work unit.
          items:
            $ref: '#/components/schemas/BuildTestOrContainer'
    BuildTestsResponse:
      type: object
      description: Test execution data for a build.
      required:
        - summary
        - workUnits
      properties:
        summary:
          $ref: '#/components/schemas/BuildTestsSummary'
        workUnits:
          type: array
          description: A list of test work units that were executed in the build.
          items:
            $ref: '#/components/schemas/BuildTestWorkUnit'
    TestIncludeFields:
      type: string
      enum:
        - buildScanIds
        - workUnits
      x-enum-varnames:
        - BUILD_SCAN_IDS
        - WORK_UNITS
    TestCasesQuery:
      x-all-of-name: TestCasesQuery
      type: object
      required:
        - container
        - testOutcomes
        - query
      properties:
        container:
          type: string
          description: Must be the fully qualified name of the test container to query. May not contain any wildcards.
        testOutcomes:
          type: array
          description: Allows restricting the search to tests that had at least one instance of the given outcome.
          items:
            $ref: '#/components/schemas/TestOutcome'
          minItems: 1
        limit:
          description: The maximum number of test outcomes to query.
          type: integer
          format: int32
          default: 100
          minimum: 1
          maximum: 1000
        query:
          type: string
          description: |
            A query for filtering tests, written in the Develocity advanced search query language
            See: https://gradle.com/help/advanced-search
        include:
          type: array
          description: Controls which optional fields are included in the response.
          nullable: true
          items:
            $ref: '#/components/schemas/TestIncludeFields'
    BazelWorkUnit:
      type: object
      description: A Bazel work unit.
      required:
        - packageName
        - targetName
      properties:
        packageName:
          type: string
          description: The name of the Bazel package.
        targetName:
          type: string
          description: The name of the Bazel target.
    GradleWorkUnit:
      type: object
      description: A Gradle work unit.
      required:
        - projectName
        - taskPath
      properties:
        projectName:
          type: string
          description: The name of the Gradle project.
        taskPath:
          type: string
          description: The path of the Gradle task.
    MavenWorkUnit:
      type: object
      description: A Maven work unit.
      required:
        - groupId
        - artifactId
        - goalName
        - executionId
      properties:
        groupId:
          type: string
          description: The Maven groupId.
        artifactId:
          type: string
          description: The Maven artifactId.
        goalName:
          type: string
          description: The Maven goal name.
        executionId:
          type: string
          description: The execution id of the goal.
    NpmWorkUnit:
      type: object
      description: An npm work unit.
      required:
        - projectName
        - testRunner
      properties:
        projectName:
          type: string
          description: The name of the npm project.
        testRunner:
          type: string
          description: The name of the test runner.
    SbtWorkUnit:
      type: object
      description: An sbt work unit.
      required:
        - taskName
      properties:
        scope:
          type: object
          description: The sbt scope.
          properties:
            project:
              type: string
              description: The name of the sbt scope project.
            configuration:
              type: string
              description: The name of the sbt scope configuration.
            task:
              type: string
              description: The name of the sbt scope task.
        taskName:
          type: string
          description: The name of the sbt task.
    TestWorkUnit:
      type: object
      description: |
        Contains a work unit.

        Only one of the properties is set, representing the build tool used for the build.
      minProperties: 1
      maxProperties: 1
      properties:
        bazel:
          $ref: '#/components/schemas/BazelWorkUnit'
        gradle:
          $ref: '#/components/schemas/GradleWorkUnit'
        maven:
          $ref: '#/components/schemas/MavenWorkUnit'
        npm:
          $ref: '#/components/schemas/NpmWorkUnit'
        sbt:
          $ref: '#/components/schemas/SbtWorkUnit'
    BuildScanIdsByOutcome:
      type: object
      description: Build Scan IDs for builds that contain tests with outcomes.
      required:
        - passed
        - failed
        - skipped
        - flaky
        - notSelected
      properties:
        passed:
          type: array
          description: The BuildIds of 'Passed' outcomes.
          items:
            type: string
        failed:
          type: array
          description: The Build Scan IDs of 'Failed' outcomes.
          items:
            type: string
        skipped:
          type: array
          description: The BuildIds of 'Skipped' outcomes.
          items:
            type: string
        flaky:
          type: array
          description: The BuildIds of 'Flaky' outcomes.
          items:
            type: string
        notSelected:
          type: array
          description: The BuildIds of 'Not Selected' outcomes.
          items:
            type: string
    TestOrContainer:
      type: object
      description: A test or test container.
      required:
        - name
        - outcomeDistribution
      properties:
        name:
          type: string
          description: The name of the test or test container.
        workUnits:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TestWorkUnit'
        outcomeDistribution:
          $ref: '#/components/schemas/TestOutcomeDistribution'
        buildScanIdsByOutcome:
          $ref: '#/components/schemas/BuildScanIdsByOutcome'
    TestsResponse:
      type: object
      description: A list of test containers or test cases.
      required:
        - content
      properties:
        content:
          type: array
          description: A list of test containers.
          items:
            $ref: '#/components/schemas/TestOrContainer'
    TestContainersQuery:
      type: object
      required:
        - testOutcomes
        - query
      properties:
        container:
          type: string
          description: Allows restricting the search to parts of the test container hierarchy. You can use wildcards to match a specific subpackage.
          default: '*'
        testOutcomes:
          type: array
          description: Allows restricting the search to tests that had at least one instance of the given outcome.
          items:
            $ref: '#/components/schemas/TestOutcome'
          minItems: 1
        query:
          type: string
          description: |
            A query for filtering tests, written in the Develocity advanced search query language
            See: https://gradle.com/help/advanced-search
        include:
          type: array
          description: Controls which optional fields are included in the response.
          nullable: true
          items:
            $ref: '#/components/schemas/TestIncludeFields'
  examples:
    RequestValidationApiProblemExample:
      value:
        type: urn:gradle:enterprise:api:problems:validation
        title: Request validation failed.
        detail: |
          Numeric instance is lower than the required minimum (minimum: 1, found: 0) (Additional info: Query parameter: maxWaitSecs).
        status: 400
    NotFoundApiProblemExample:
      value:
        type: urn:gradle:enterprise:api:problems:not-found
        title: The requested resource is not found or the permissions to know about it are missing.
        status: 404
    UnexpectedErrorApiProblemExample:
      value:
        type: urn:gradle:enterprise:api:problems:unexpected-error
        title: Encountered an internal server error.
        detail: |
          The ingestion of build 9r4d13f0r3v3r failed.
        status: 500
    IngestionNotCompletedApiProblemExample:
      value:
        type: urn:gradle:enterprise:api:problems:build-processing-incomplete
        title: Build processing is incomplete.
        detail: |
          The data of build 9r4d13f0r3v3r is not yet available for viewing. Please try again later.
        status: 503
    NodeNotSignedInProblemExample:
      value:
        type: urn:gradle:enterprise:api:problems:node-not-signed-in
        title: Node with name not-signed-in-node1 must be signed-in before this operation can be performed.
        status: 503
    ForbiddenUserExample:
      value:
        type: urn:gradle:enterprise:forbidden
        title: Insufficient permissions
        detail: User must have the Administer Projects permission to access this endpoint.
        status: 403
    UnauthenticatedExample:
      value:
        type: urn:gradle:enterprise:api:problems:client-error
        title: Something was wrong with the request
        status: 401
    CapabilityValidationProblemExample:
      value:
        type: urn:gradle:enterprise:validation
        title: Invalid request parameters
        detail: One or more capabilities have an invalid format.
        status: 400
