type: google.api.Service
config_version: 3
name: cloudbuild.googleapis.com
title: Cloud Build API

apis:
- name: google.cloud.location.Locations
- name: google.devtools.cloudbuild.v2.RepositoryManager
- name: google.iam.v1.IAMPolicy
- name: google.longrunning.Operations

types:
- name: google.devtools.cloudbuild.v2.BatchCreateRepositoriesResponse
- name: google.devtools.cloudbuild.v2.OperationMetadata
- name: google.devtools.cloudbuild.v2.RunWorkflowCustomOperationMetadata

documentation:
  summary: Creates and manages builds on Google Cloud Platform.
  overview: |-
    The Cloud Build API lets you to build an application or part of an
    application from source code stored in Cloud Storage, Cloud Source
    Repository, or GitHub, and package it into container images or artifacts.
    The images are then stored in Container Registry and the artifacts are
    stored in Cloud Storage.
  rules:
  - selector: google.iam.v1.IAMPolicy.GetIamPolicy
    description: |-
      Gets the access control policy for a resource. Returns an empty policy
      if the resource exists and does not have a policy set.

  - selector: google.iam.v1.IAMPolicy.SetIamPolicy
    description: |-
      Sets the access control policy on the specified resource. Replaces
      any existing policy.

      Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
      errors.

  - selector: google.iam.v1.IAMPolicy.TestIamPermissions
    description: |-
      Returns permissions that a caller has on the specified resource. If the
      resource does not exist, this will return an empty set of
      permissions, not a `NOT_FOUND` error.

      Note: This operation is designed to be used for building
      permission-aware UIs and command-line tools, not for authorization
      checking. This operation may "fail open" without warning.

backend:
  rules:
  - selector: 'google.devtools.cloudbuild.v2.RepositoryManager.*'
    deadline: 5.0
  - selector: google.devtools.cloudbuild.v2.RepositoryManager.FetchGitRefs
    deadline: 10.0
  - selector: google.devtools.cloudbuild.v2.RepositoryManager.FetchLinkableRepositories
    deadline: 10.0
  - selector: google.devtools.cloudbuild.v2.RepositoryManager.FetchReadToken
    deadline: 10.0
  - selector: google.devtools.cloudbuild.v2.RepositoryManager.FetchReadWriteToken
    deadline: 10.0
  - selector: google.devtools.cloudbuild.v2.RepositoryManager.ProcessWebhook
    deadline: 10.0
  - selector: 'google.iam.v1.IAMPolicy.*'
    deadline: 5.0
  - selector: google.longrunning.Operations.CancelOperation
    deadline: 5.0
  - selector: google.longrunning.Operations.GetOperation
    deadline: 5.0

http:
  rules:
  - selector: google.iam.v1.IAMPolicy.GetIamPolicy
    get: '/v2/{resource=projects/*/locations/*/connections/*}:getIamPolicy'
  - selector: google.iam.v1.IAMPolicy.SetIamPolicy
    post: '/v2/{resource=projects/*/locations/*/connections/*}:setIamPolicy'
    body: '*'
  - selector: google.iam.v1.IAMPolicy.TestIamPermissions
    post: '/v2/{resource=projects/*/locations/*/connections/*}:testIamPermissions'
    body: '*'
  - selector: google.longrunning.Operations.CancelOperation
    post: '/v2/{name=projects/*/locations/*/operations/*}:cancel'
    body: '*'
  - selector: google.longrunning.Operations.GetOperation
    get: '/v2/{name=projects/*/locations/*/operations/*}'

authentication:
  rules:
  - selector: 'google.devtools.cloudbuild.v2.RepositoryManager.*'
    oauth:
      canonical_scopes: |-
        https://www.googleapis.com/auth/cloud-platform
  - selector: 'google.iam.v1.IAMPolicy.*'
    oauth:
      canonical_scopes: |-
        https://www.googleapis.com/auth/cloud-platform
  - selector: google.longrunning.Operations.CancelOperation
    oauth:
      canonical_scopes: |-
        https://www.googleapis.com/auth/cloud-platform
  - selector: google.longrunning.Operations.GetOperation
    oauth:
      canonical_scopes: |-
        https://www.googleapis.com/auth/cloud-platform
