Package google.cloud.config.v1

Index

Config

Infrastructure Manager is a managed service that automates the deployment and management of Google Cloud infrastructure resources.

CreateDeployment

rpc CreateDeployment(CreateDeploymentRequest) returns (Operation)

Creates a Deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.deployments.create

For more information, see the IAM documentation.

CreatePreview

rpc CreatePreview(CreatePreviewRequest) returns (Operation)

Creates a Preview.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.previews.create

For more information, see the IAM documentation.

DeleteDeployment

rpc DeleteDeployment(DeleteDeploymentRequest) returns (Operation)

Deletes a Deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.deployments.delete

For more information, see the IAM documentation.

DeletePreview

rpc DeletePreview(DeletePreviewRequest) returns (Operation)

Deletes a Preview.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.previews.delete

For more information, see the IAM documentation.

DeleteStatefile

rpc DeleteStatefile(DeleteStatefileRequest) returns (Empty)

Deletes Terraform state file in a given deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.deployments.deleteState

For more information, see the IAM documentation.

ExportDeploymentStatefile

rpc ExportDeploymentStatefile(ExportDeploymentStatefileRequest) returns (Statefile)

Exports Terraform state file from a given deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.deployments.getState

For more information, see the IAM documentation.

ExportLockInfo

rpc ExportLockInfo(ExportLockInfoRequest) returns (LockInfo)

Exports the lock info on a locked deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.deployments.getLock

For more information, see the IAM documentation.

ExportPreviewResult

rpc ExportPreviewResult(ExportPreviewResultRequest) returns (ExportPreviewResultResponse)

Export Preview results.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.previews.export

For more information, see the IAM documentation.

ExportRevisionStatefile

rpc ExportRevisionStatefile(ExportRevisionStatefileRequest) returns (Statefile)

Exports Terraform state file from a given revision.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.revisions.getState

For more information, see the IAM documentation.

GetDeployment

rpc GetDeployment(GetDeploymentRequest) returns (Deployment)

Gets details about a Deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.deployments.get

For more information, see the IAM documentation.

GetPreview

rpc GetPreview(GetPreviewRequest) returns (Preview)

Gets details about a Preview.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.previews.get

For more information, see the IAM documentation.

GetResource

rpc GetResource(GetResourceRequest) returns (Resource)

Gets details about a Resource deployed by Infra Manager.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.resources.get

For more information, see the IAM documentation.

GetRevision

rpc GetRevision(GetRevisionRequest) returns (Revision)

Gets details about a Revision.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.revisions.get

For more information, see the IAM documentation.

GetTerraformVersion

rpc GetTerraformVersion(GetTerraformVersionRequest) returns (TerraformVersion)

Gets details about a TerraformVersion.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.terraformversions.get

For more information, see the IAM documentation.

ImportStatefile

rpc ImportStatefile(ImportStatefileRequest) returns (Statefile)

Imports Terraform state file in a given deployment. The state file does not take effect until the Deployment has been unlocked.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.deployments.updateState

For more information, see the IAM documentation.

ListDeployments

rpc ListDeployments(ListDeploymentsRequest) returns (ListDeploymentsResponse)

Lists Deployments in a given project and location.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.deployments.list

For more information, see the IAM documentation.

ListPreviews

rpc ListPreviews(ListPreviewsRequest) returns (ListPreviewsResponse)

Lists Previews in a given project and location.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.previews.list

For more information, see the IAM documentation.

ListResources

rpc ListResources(ListResourcesRequest) returns (ListResourcesResponse)

Lists Resources in a given revision.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.resources.list

For more information, see the IAM documentation.

ListRevisions

rpc ListRevisions(ListRevisionsRequest) returns (ListRevisionsResponse)

Lists Revisions of a deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.revisions.list

For more information, see the IAM documentation.

ListTerraformVersions

rpc ListTerraformVersions(ListTerraformVersionsRequest) returns (ListTerraformVersionsResponse)

Lists TerraformVersions in a given project and location.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • config.googleapis.com/config.terraformversions.list

For more information, see the IAM documentation.

LockDeployment

rpc LockDeployment(LockDeploymentRequest) returns (Operation)

Locks a deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.deployments.lock

For more information, see the IAM documentation.

UnlockDeployment

rpc UnlockDeployment(UnlockDeploymentRequest) returns (Operation)

Unlocks a locked deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.deployments.unlock

For more information, see the IAM documentation.

UpdateDeployment

rpc UpdateDeployment(UpdateDeploymentRequest) returns (Operation)

Updates a Deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • config.googleapis.com/config.deployments.update

For more information, see the IAM documentation.

ApplyResults

Outputs and artifacts from applying a deployment.

Fields
content

string

Location of a blueprint copy and other manifests in Google Cloud Storage. Format: gs://{bucket}/{object}

artifacts

string

Location of artifacts (e.g. logs) in Google Cloud Storage. Format: gs://{bucket}/{object}

outputs

map<string, TerraformOutput>

Map of output name to output info.

CreateDeploymentRequest

Fields
parent

string

Required. The parent in whose context the Deployment is created. The parent value is in the format: 'projects/{project_id}/locations/{location}'.

Authorization requires the following IAM permission on the specified resource parent:

  • config.deployments.create
deployment_id

string

Required. The Deployment ID.

deployment

Deployment

Required. Deployment resource to be created.

request_id

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

CreatePreviewRequest

A request to create a preview.

Fields
parent

string

Required. The parent in whose context the Preview is created. The parent value is in the format: 'projects/{project_id}/locations/{location}'.

preview_id

string

Optional. The preview ID.

preview

Preview

Required. Preview resource to be created.

request_id

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DeleteDeploymentRequest

Fields
name

string

Required. The name of the Deployment in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

Authorization requires the following IAM permission on the specified resource name:

  • config.deployments.delete
request_id

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

force

bool

Optional. If set to true, any revisions for this deployment will also be deleted. (Otherwise, the request will only work if the deployment has no revisions.)

delete_policy

DeletePolicy

Optional. Policy on how resources actuated by the deployment should be deleted. If unspecified, the default behavior is to delete the underlying resources.

DeletePolicy

Policy on how resources actuated by the deployment should be deleted.

Enums
DELETE_POLICY_UNSPECIFIED Unspecified policy, resources will be deleted.
DELETE Deletes resources actuated by the deployment.
ABANDON Abandons resources and only deletes the deployment and its metadata.

DeletePreviewRequest

A request to delete a preview.

Fields
name

string

Required. The name of the Preview in the format: 'projects/{project_id}/locations/{location}/previews/{preview}'.

request_id

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DeleteStatefileRequest

A request to delete a state file passed to a 'DeleteStatefile' call.

Fields
name

string

Required. The name of the deployment in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

lock_id

int64

Required. Lock ID of the lock file to verify that the user who is deleting the state file previously locked the Deployment.

Deployment

A Deployment is a group of resources and configs managed and provisioned by Infra Manager.

Fields
name

string

Resource name of the deployment. Format: projects/{project}/locations/{location}/deployments/{deployment}

create_time

Timestamp

Output only. Time when the deployment was created.

update_time

Timestamp

Output only. Time when the deployment was last modified.

labels

map<string, string>

User-defined metadata for the deployment.

state

State

Output only. Current state of the deployment.

latest_revision

string

Output only. Revision name that was most recently applied. Format: projects/{project}/locations/{location}/deployments/{deployment}/ revisions/{revision}

state_detail

string

Output only. Additional information regarding the current state.

error_code

ErrorCode

Output only. Error code describing errors that may have occurred.

delete_results

ApplyResults

Output only. Location of artifacts from a DeleteDeployment operation.

delete_build

string

Output only. Cloud Build instance UUID associated with deleting this deployment.

delete_logs

string

Output only. Location of Cloud Build logs in Google Cloud Storage, populated when deleting this deployment. Format: gs://{bucket}/{object}.

tf_errors[]

TerraformError

Output only. Errors encountered when deleting this deployment. Errors are truncated to 10 entries, see delete_results and error_logs for full details.

error_logs

string

Output only. Location of Terraform error logs in Google Cloud Storage. Format: gs://{bucket}/{object}.

lock_state

LockState

Output only. Current lock state of the deployment.

tf_version

string

Output only. The current Terraform version set on the deployment. It is in the format of "Major.Minor.Patch", for example, "1.3.10".

quota_validation

QuotaValidation

Optional. Input to control quota checks for resources in terraform configuration files. There are limited resources on which quota validation applies.

annotations

map<string, string>

Optional. Arbitrary key-value metadata storage e.g. to help client tools identify deployments during automation. See https://google.aip.dev/148#annotations for details on format and size limitations.

Union field blueprint. Blueprint to deploy. blueprint can be only one of the following:
terraform_blueprint

TerraformBlueprint

A blueprint described using Terraform's HashiCorp Configuration Language as a root module.

artifacts_gcs_bucket

string

Optional. User-defined location of Cloud Build logs and artifacts in Google Cloud Storage. Format: gs://{bucket}/{folder}

A default bucket will be bootstrapped if the field is not set or empty. Default bucket format: gs://<project number>-<region>-blueprint-config Constraints: - The bucket needs to be in the same project as the deployment - The path cannot be within the path of gcs_source - The field cannot be updated, including changing its presence

service_account

string

Required. User-specified Service Account (SA) credentials to be used when actuating resources. Format: projects/{projectID}/serviceAccounts/{serviceAccount}

import_existing_resources

bool

By default, Infra Manager will return a failure when Terraform encounters a 409 code (resource conflict error) during actuation. If this flag is set to true, Infra Manager will instead attempt to automatically import the resource into the Terraform state (for supported resource types) and continue actuation.

Not all resource types are supported, refer to documentation.

worker_pool

string

Optional. The user-specified Cloud Build worker pool resource in which the Cloud Build job will execute. Format: projects/{project}/locations/{location}/workerPools/{workerPoolId}. If this field is unspecified, the default Cloud Build worker pool will be used.

tf_version_constraint

string

Optional. The user-specified Terraform version constraint. Example: "=1.3.10".

ErrorCode

Possible errors that can occur with deployments.

Enums
ERROR_CODE_UNSPECIFIED No error code was specified.
REVISION_FAILED The revision failed. See Revision for more details.
CLOUD_BUILD_PERMISSION_DENIED Cloud Build failed due to a permission issue.
DELETE_BUILD_API_FAILED Cloud Build job associated with a deployment deletion could not be started.
DELETE_BUILD_RUN_FAILED Cloud Build job associated with a deployment deletion was started but failed.
BUCKET_CREATION_PERMISSION_DENIED Cloud Storage bucket creation failed due to a permission issue.
BUCKET_CREATION_FAILED Cloud Storage bucket creation failed due to an issue unrelated to permissions.

LockState

Possible lock states of a deployment.

Enums
LOCK_STATE_UNSPECIFIED The default value. This value is used if the lock state is omitted.
LOCKED The deployment is locked.
UNLOCKED The deployment is unlocked.
LOCKING The deployment is being locked.
UNLOCKING The deployment is being unlocked.
LOCK_FAILED The deployment has failed to lock.
UNLOCK_FAILED The deployment has failed to unlock.

State

Possible states of a deployment.

Enums
STATE_UNSPECIFIED The default value. This value is used if the state is omitted.
CREATING The deployment is being created.
ACTIVE The deployment is healthy.
UPDATING The deployment is being updated.
DELETING The deployment is being deleted.
FAILED The deployment has encountered an unexpected error.
SUSPENDED The deployment is no longer being actively reconciled. This may be the result of recovering the project after deletion.
DELETED The deployment has been deleted.

DeploymentOperationMetadata

Ephemeral metadata content describing the state of a deployment operation.

Fields
step

DeploymentStep

The current step the deployment operation is running.

apply_results

ApplyResults

Outputs and artifacts from applying a deployment.

build

string

Output only. Cloud Build instance UUID associated with this operation.

logs

string

Output only. Location of Deployment operations logs in gs://{bucket}/{object} format.

DeploymentStep

The possible steps a deployment may be running.

Enums
DEPLOYMENT_STEP_UNSPECIFIED Unspecified deployment step
PREPARING_STORAGE_BUCKET Infra Manager is creating a Google Cloud Storage bucket to store artifacts and metadata about the deployment and revision
DOWNLOADING_BLUEPRINT Downloading the blueprint onto the Google Cloud Storage bucket
RUNNING_TF_INIT Initializing Terraform using terraform init
RUNNING_TF_PLAN Running terraform plan
RUNNING_TF_APPLY Actuating resources using Terraform using terraform apply
RUNNING_TF_DESTROY Destroying resources using Terraform using terraform destroy
RUNNING_TF_VALIDATE Validating the uploaded TF state file when unlocking a deployment
UNLOCKING_DEPLOYMENT Unlocking a deployment
SUCCEEDED Operation was successful
FAILED Operation failed
VALIDATING_REPOSITORY Validating the provided repository.
RUNNING_QUOTA_VALIDATION Running quota validation

ExportDeploymentStatefileRequest

A request to export a state file passed to a 'ExportDeploymentStatefile' call.

Fields
parent

string

Required. The parent in whose context the statefile is listed. The parent value is in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

draft

bool

Optional. If this flag is set to true, the exported deployment state file will be the draft state. This will enable the draft file to be validated before copying it over to the working state on unlock.

ExportLockInfoRequest

A request to get a state file lock info passed to a 'ExportLockInfo' call.

Fields
name

string

Required. The name of the deployment in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

ExportPreviewResultRequest

A request to export preview results.

Fields
parent

string

Required. The preview whose results should be exported. The preview value is in the format: 'projects/{project_id}/locations/{location}/previews/{preview}'.

ExportPreviewResultResponse

A response to ExportPreviewResult call. Contains preview results.

Fields
result

PreviewResult

Output only. Signed URLs for accessing the plan files.

ExportRevisionStatefileRequest

A request to export a state file passed to a 'ExportRevisionStatefile' call.

Fields
parent

string

Required. The parent in whose context the statefile is listed. The parent value is in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}/revisions/{revision}'.

GetDeploymentRequest

Fields
name

string

Required. The name of the deployment. Format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

Authorization requires the following IAM permission on the specified resource name:

  • config.deployments.get

GetPreviewRequest

A request to get details about a preview.

Fields
name

string

Required. The name of the preview. Format: 'projects/{project_id}/locations/{location}/previews/{preview}'.

Authorization requires the following IAM permission on the specified resource name:

  • config.previews.get

GetResourceRequest

A request to get a Resource from a 'GetResource' call.

Fields
name

string

Required. The name of the Resource in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}/revisions/{revision}/resource/{resource}'.

GetRevisionRequest

A request to get a Revision from a 'GetRevision' call.

Fields
name

string

Required. The name of the Revision in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}/revisions/{revision}'.

Authorization requires the following IAM permission on the specified resource name:

  • config.revisions.get

GetTerraformVersionRequest

The request message for the GetTerraformVersion method.

Fields
name

string

Required. The name of the TerraformVersion. Format: 'projects/{project_id}/locations/{location}/terraformVersions/{terraform_version}'

Authorization requires the following IAM permission on the specified resource name:

  • config.terraformversions.get

GitSource

A set of files in a Git repository.

Fields
repo

string

Optional. Repository URL. Example: 'https://github.com/kubernetes/examples.git'

directory

string

Optional. Subdirectory inside the repository. Example: 'staging/my-package'

ref

string

Optional. Git reference (e.g. branch or tag).

ImportStatefileRequest

A request to import a state file passed to a 'ImportStatefile' call.

Fields
parent

string

Required. The parent in whose context the statefile is listed. The parent value is in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

lock_id

int64

Required. Lock ID of the lock file to verify that the user who is importing the state file previously locked the Deployment.

ListDeploymentsRequest

Fields
parent

string

Required. The parent in whose context the Deployments are listed. The parent value is in the format: 'projects/{project_id}/locations/{location}'.

Authorization requires the following IAM permission on the specified resource parent:

  • config.deployments.list
page_size

int32

When requesting a page of resources, 'page_size' specifies number of resources to return. If unspecified, at most 500 will be returned. The maximum value is 1000.

page_token

string

Token returned by previous call to 'ListDeployments' which specifies the position in the list from where to continue listing the resources.

filter

string

Lists the Deployments that match the filter expression. A filter expression filters the resources listed in the response. The expression must be of the form '{field} {operator} {value}' where operators: '<', '>', '<=', '>=', '!=', '=', ':' are supported (colon ':' represents a HAS operator which is roughly synonymous with equality). {field} can refer to a proto or JSON field, or a synthetic field. Field names can be camelCase or snake_case.

Examples: - Filter by name: name = "projects/foo/locations/us-central1/deployments/bar

  • Filter by labels:
  • Resources that have a key called 'foo' labels.foo:*
  • Resources that have a key called 'foo' whose value is 'bar' labels.foo = bar
  • Filter by state:

  • Deployments in CREATING state. state=CREATING
order_by

string

Field to use to sort the list.

ListDeploymentsResponse

Fields
deployments[]

Deployment

List of Deployments.

next_page_token

string

Token to be supplied to the next ListDeployments request via page_token to obtain the next set of results.

unreachable[]

string

Locations that could not be reached.

ListPreviewsRequest

A request to list all previews for a given project and location.

Fields
parent

string

Required. The parent in whose context the Previews are listed. The parent value is in the format: 'projects/{project_id}/locations/{location}'.

Authorization requires the following IAM permission on the specified resource parent:

  • config.previews.list
page_size

int32

Optional. When requesting a page of resources, 'page_size' specifies number of resources to return. If unspecified, at most 500 will be returned. The maximum value is 1000.

page_token

string

Optional. Token returned by previous call to 'ListDeployments' which specifies the position in the list from where to continue listing the resources.

filter

string

Optional. Lists the Deployments that match the filter expression. A filter expression filters the resources listed in the response. The expression must be of the form '{field} {operator} {value}' where operators: '<', '>', '<=', '>=', '!=', '=', ':' are supported (colon ':' represents a HAS operator which is roughly synonymous with equality). {field} can refer to a proto or JSON field, or a synthetic field. Field names can be camelCase or snake_case.

Examples: - Filter by name: name = "projects/foo/locations/us-central1/deployments/bar

  • Filter by labels:
  • Resources that have a key called 'foo' labels.foo:*
  • Resources that have a key called 'foo' whose value is 'bar' labels.foo = bar
  • Filter by state:

  • Deployments in CREATING state. state=CREATING
order_by

string

Optional. Field to use to sort the list.

ListPreviewsResponse

A response to a ListPreviews call. Contains a list of Previews.

Fields
previews[]

Preview

List of [Previews][]s.

next_page_token

string

Token to be supplied to the next ListPreviews request via page_token to obtain the next set of results.

unreachable[]

string

Locations that could not be reached.

ListResourcesRequest

A request to list Resources passed to a 'ListResources' call.

Fields
parent

string

Required. The parent in whose context the Resources are listed. The parent value is in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}/revisions/{revision}'.

page_size

int32

When requesting a page of resources, 'page_size' specifies number of resources to return. If unspecified, at most 500 will be returned. The maximum value is 1000.

page_token

string

Token returned by previous call to 'ListResources' which specifies the position in the list from where to continue listing the resources.

filter

string

Lists the Resources that match the filter expression. A filter expression filters the resources listed in the response. The expression must be of the form '{field} {operator} {value}' where operators: '<', '>', '<=', '>=', '!=', '=', ':' are supported (colon ':' represents a HAS operator which is roughly synonymous with equality). {field} can refer to a proto or JSON field, or a synthetic field. Field names can be camelCase or snake_case.

Examples: - Filter by name: name = "projects/foo/locations/us-central1/deployments/dep/revisions/bar/resources/baz

order_by

string

Field to use to sort the list.

ListResourcesResponse

A response to a 'ListResources' call. Contains a list of Resources.

Fields
resources[]

Resource

List of [Resources][]s.

next_page_token

string

A token to request the next page of resources from the 'ListResources' method. The value of an empty string means that there are no more resources to return.

unreachable[]

string

Locations that could not be reached.

ListRevisionsRequest

A request to list Revisions passed to a 'ListRevisions' call.

Fields
parent

string

Required. The parent in whose context the Revisions are listed. The parent value is in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

Authorization requires the following IAM permission on the specified resource parent:

  • config.revisions.list
page_size

int32

When requesting a page of resources, page_size specifies number of resources to return. If unspecified, at most 500 will be returned. The maximum value is 1000.

page_token

string

Token returned by previous call to 'ListRevisions' which specifies the position in the list from where to continue listing the resources.

filter

string

Lists the Revisions that match the filter expression. A filter expression filters the resources listed in the response. The expression must be of the form '{field} {operator} {value}' where operators: '<', '>', '<=', '>=', '!=', '=', ':' are supported (colon ':' represents a HAS operator which is roughly synonymous with equality). {field} can refer to a proto or JSON field, or a synthetic field. Field names can be camelCase or snake_case.

Examples: - Filter by name: name = "projects/foo/locations/us-central1/deployments/dep/revisions/bar

  • Filter by labels:
  • Resources that have a key called 'foo' labels.foo:*
  • Resources that have a key called 'foo' whose value is 'bar' labels.foo = bar
  • Filter by state:

  • Revisions in CREATING state. state=CREATING
order_by

string

Field to use to sort the list.

ListRevisionsResponse

A response to a 'ListRevisions' call. Contains a list of Revisions.

Fields
revisions[]

Revision

List of Revisions.

next_page_token

string

A token to request the next page of resources from the 'ListRevisions' method. The value of an empty string means that there are no more resources to return.

unreachable[]

string

Locations that could not be reached.

ListTerraformVersionsRequest

The request message for the ListTerraformVersions method.

Fields
parent

string

Required. The parent in whose context the TerraformVersions are listed. The parent value is in the format: 'projects/{project_id}/locations/{location}'.

Authorization requires the following IAM permission on the specified resource parent:

  • config.terraformversions.list
page_size

int32

Optional. When requesting a page of resources, 'page_size' specifies number of resources to return. If unspecified, at most 500 will be returned. The maximum value is 1000.

page_token

string

Optional. Token returned by previous call to 'ListTerraformVersions' which specifies the position in the list from where to continue listing the resources.

filter

string

Optional. Lists the TerraformVersions that match the filter expression. A filter expression filters the resources listed in the response. The expression must be of the form '{field} {operator} {value}' where operators: '<', '>', '<=', '>=', '!=', '=', ':' are supported (colon ':' represents a HAS operator which is roughly synonymous with equality). {field} can refer to a proto or JSON field, or a synthetic field. Field names can be camelCase or snake_case.

order_by

string

Optional. Field to use to sort the list.

ListTerraformVersionsResponse

The response message for the ListTerraformVersions method.

Fields
terraform_versions[]

TerraformVersion

List of TerraformVersions.

next_page_token

string

Token to be supplied to the next ListTerraformVersions request via page_token to obtain the next set of results.

unreachable[]

string

Unreachable resources, if any.

LockDeploymentRequest

A request to lock a deployment passed to a 'LockDeployment' call.

Fields
name

string

Required. The name of the deployment in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

LockInfo

Details about the lock which locked the deployment.

Fields
lock_id

int64

Unique ID for the lock to be overridden with generation ID in the backend.

operation

string

Terraform operation, provided by the caller.

info

string

Extra information to store with the lock, provided by the caller.

who

string

user@hostname when available

version

string

Terraform version

create_time

Timestamp

Time that the lock was taken.

OperationMetadata

Represents the metadata of the long-running operation.

Fields
create_time

Timestamp

Output only. Time when the operation was created.

end_time

Timestamp

Output only. Time when the operation finished running.

target

string

Output only. Server-defined resource path for the target of the operation.

verb

string

Output only. Name of the verb executed by the operation.

status_message

string

Output only. Human-readable status of the operation, if any.

requested_cancellation

bool

Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have [Operation.error][] value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.

api_version

string

Output only. API version used to start the operation.

Union field resource_metadata. Ephemeral metadata about the state of an operation for a particular resource. resource_metadata can be only one of the following:
deployment_metadata

DeploymentOperationMetadata

Output only. Metadata about the deployment operation state.

preview_metadata

PreviewOperationMetadata

Output only. Metadata about the preview operation state.

Preview

A preview represents a set of actions Infra Manager would perform to move the resources towards the desired state as specified in the configuration.

Fields
name

string

Identifier. Resource name of the preview. Resource name can be user provided or server generated ID if unspecified. Format: projects/{project}/locations/{location}/previews/{preview}

create_time

Timestamp

Output only. Time the preview was created.

labels

map<string, string>

Optional. User-defined labels for the preview.

state

State

Output only. Current state of the preview.

deployment

string

Optional. Optional deployment reference. If specified, the preview will be performed using the provided deployment's current state and use any relevant fields from the deployment unless explicitly specified in the preview create request.

preview_mode

PreviewMode

Optional. Current mode of preview.

service_account

string

Required. User-specified Service Account (SA) credentials to be used when previewing resources. Format: projects/{projectID}/serviceAccounts/{serviceAccount}

error_code

ErrorCode

Output only. Code describing any errors that may have occurred.

error_status

Status

Output only. Additional information regarding the current state.

build

string

Output only. Cloud Build instance UUID associated with this preview.

tf_errors[]

TerraformError

Output only. Summary of errors encountered during Terraform preview. It has a size limit of 10, i.e. only top 10 errors will be summarized here.

error_logs

string

Output only. Link to tf-error.ndjson file, which contains the full list of the errors encountered during a Terraform preview. Format: gs://{bucket}/{object}.

preview_artifacts

PreviewArtifacts

Output only. Artifacts from preview.

logs

string

Output only. Location of preview logs in gs://{bucket}/{object} format.

tf_version

string

Output only. The current Terraform version set on the preview. It is in the format of "Major.Minor.Patch", for example, "1.3.10".

annotations

map<string, string>

Optional. Arbitrary key-value metadata storage e.g. to help client tools identifiy preview during automation. See https://google.aip.dev/148#annotations for details on format and size limitations.

Union field blueprint. Blueprint to preview. blueprint can be only one of the following:
terraform_blueprint

TerraformBlueprint

The terraform blueprint to preview.

artifacts_gcs_bucket

string

Optional. User-defined location of Cloud Build logs, artifacts, and in Google Cloud Storage. Format: gs://{bucket}/{folder} A default bucket will be bootstrapped if the field is not set or empty Default Bucket Format: gs://<project number>-<region>-blueprint-config Constraints: - The bucket needs to be in the same project as the deployment - The path cannot be within the path of gcs_source If omitted and deployment resource ref provided has artifacts_gcs_bucket defined, that artifact bucket is used.

worker_pool

string

Optional. The user-specified Worker Pool resource in which the Cloud Build job will execute. Format projects/{project}/locations/{location}/workerPools/{workerPoolId} If this field is unspecified, the default Cloud Build worker pool will be used. If omitted and deployment resource ref provided has worker_pool defined, that worker pool is used.

tf_version_constraint

string

Optional. The user-specified Terraform version constraint. Example: "=1.3.10".

ErrorCode

Possible errors that can occur with previews.

Enums
ERROR_CODE_UNSPECIFIED No error code was specified.
CLOUD_BUILD_PERMISSION_DENIED Cloud Build failed due to a permissions issue.
BUCKET_CREATION_PERMISSION_DENIED Cloud Storage bucket failed to create due to a permissions issue.
BUCKET_CREATION_FAILED Cloud Storage bucket failed for a non-permissions-related issue.
DEPLOYMENT_LOCK_ACQUIRE_FAILED Acquiring lock on provided deployment reference failed.
PREVIEW_BUILD_API_FAILED Preview encountered an error when trying to access Cloud Build API.
PREVIEW_BUILD_RUN_FAILED Preview created a build but build failed and logs were generated.

PreviewMode

Preview mode provides options for customizing preview operations.

Enums
PREVIEW_MODE_UNSPECIFIED Unspecified policy, default mode will be used.
DEFAULT DEFAULT mode generates an execution plan for reconciling current resource state into expected resource state.
DELETE DELETE mode generates as execution plan for destroying current resources.

State

Possible states of a preview.

Enums
STATE_UNSPECIFIED The default value. This value is used if the state is unknown.
CREATING The preview is being created.
SUCCEEDED The preview has succeeded.
APPLYING The preview is being applied.
STALE The preview is stale. A preview can become stale if a revision has been applied after this preview was created.
DELETING The preview is being deleted.
FAILED The preview has encountered an unexpected error.
DELETED The preview has been deleted.

PreviewArtifacts

Artifacts created by preview.

Fields
content

string

Output only. Location of a blueprint copy and other content in Google Cloud Storage. Format: gs://{bucket}/{object}

artifacts

string

Output only. Location of artifacts in Google Cloud Storage. Format: gs://{bucket}/{object}

PreviewOperationMetadata

Ephemeral metadata content describing the state of a preview operation.

Fields
step

PreviewStep

The current step the preview operation is running.

preview_artifacts

PreviewArtifacts

Artifacts from preview.

logs

string

Output only. Location of preview logs in gs://{bucket}/{object} format.

build

string

Output only. Cloud Build instance UUID associated with this preview.

PreviewStep

The possible steps a preview may be running.

Enums
PREVIEW_STEP_UNSPECIFIED Unspecified preview step.
PREPARING_STORAGE_BUCKET Infra Manager is creating a Google Cloud Storage bucket to store artifacts and metadata about the preview.
DOWNLOADING_BLUEPRINT Downloading the blueprint onto the Google Cloud Storage bucket.
RUNNING_TF_INIT Initializing Terraform using terraform init.
RUNNING_TF_PLAN Running terraform plan.
FETCHING_DEPLOYMENT Fetching a deployment.
LOCKING_DEPLOYMENT Locking a deployment.
UNLOCKING_DEPLOYMENT Unlocking a deployment.
SUCCEEDED Operation was successful.
FAILED Operation failed.
VALIDATING_REPOSITORY Validating the provided repository.

PreviewResult

Contains a signed Cloud Storage URLs.

Fields
binary_signed_uri

string

Output only. Plan binary signed URL

json_signed_uri

string

Output only. Plan JSON signed URL

QuotaValidation

Enum values to control quota checks for resources in terraform configuration files.

Enums
QUOTA_VALIDATION_UNSPECIFIED The default value. QuotaValidation on terraform configuration files will be disabled in this case.
ENABLED Enable computing quotas for resources in terraform configuration files to get visibility on resources with insufficient quotas.
ENFORCED Enforce quota checks so deployment fails if there isn't sufficient quotas available to deploy resources in terraform configuration files.

Resource

Resource represents a Google Cloud Platform resource actuated by IM. Resources are child resources of Revisions.

Fields
name

string

Output only. Resource name. Format: projects/{project}/locations/{location}/deployments/{deployment}/revisions/{revision}/resources/{resource}

terraform_info

ResourceTerraformInfo

Output only. Terraform-specific info if this resource was created using Terraform.

cai_assets

map<string, ResourceCAIInfo>

Output only. Map of Cloud Asset Inventory (CAI) type to CAI info (e.g. CAI ID). CAI type format follows https://cloud.google.com/asset-inventory/docs/supported-asset-types

intent

Intent

Output only. Intent of the resource.

state

State

Output only. Current state of the resource.

Intent

Possible intent of the resource.

Enums
INTENT_UNSPECIFIED The default value. This value is used if the intent is omitted.
CREATE Infra Manager will create this Resource.
UPDATE Infra Manager will update this Resource.
DELETE Infra Manager will delete this Resource.
RECREATE Infra Manager will destroy and recreate this Resource.
UNCHANGED Infra Manager will leave this Resource untouched.

State

Possible states of a resource.

Enums
STATE_UNSPECIFIED The default value. This value is used if the state is omitted.
PLANNED Resource has been planned for reconcile.
IN_PROGRESS Resource is actively reconciling into the intended state.
RECONCILED Resource has reconciled to intended state.
FAILED Resource failed to reconcile.

ResourceCAIInfo

CAI info of a Resource.

Fields
full_resource_name

string

CAI resource name in the format following https://cloud.google.com/apis/design/resource_names#full_resource_name

ResourceTerraformInfo

Terraform info of a Resource.

Fields
address

string

TF resource address that uniquely identifies this resource within this deployment.

type

string

TF resource type

id

string

ID attribute of the TF resource

Revision

A child resource of a Deployment generated by a 'CreateDeployment' or 'UpdateDeployment' call. Each Revision contains metadata pertaining to a snapshot of a particular Deployment.

Fields
name

string

Revision name. Format: projects/{project}/locations/{location}/deployments/{deployment}/ revisions/{revision}

create_time

Timestamp

Output only. Time when the revision was created.

update_time

Timestamp

Output only. Time when the revision was last modified.

action

Action

Output only. The action which created this revision

state

State

Output only. Current state of the revision.

apply_results

ApplyResults

Output only. Outputs and artifacts from applying a deployment.

state_detail

string

Output only. Additional info regarding the current state.

error_code

ErrorCode

Output only. Code describing any errors that may have occurred.

build

string

Output only. Cloud Build instance UUID associated with this revision.

logs

string

Output only. Location of Revision operation logs in gs://{bucket}/{object} format.

tf_errors[]

TerraformError

Output only. Errors encountered when creating or updating this deployment. Errors are truncated to 10 entries, see delete_results and error_logs for full details.

error_logs

string

Output only. Location of Terraform error logs in Google Cloud Storage. Format: gs://{bucket}/{object}.

service_account

string

Output only. User-specified Service Account (SA) to be used as credential to manage resources. Format: projects/{projectID}/serviceAccounts/{serviceAccount}

import_existing_resources

bool

Output only. By default, Infra Manager will return a failure when Terraform encounters a 409 code (resource conflict error) during actuation. If this flag is set to true, Infra Manager will instead attempt to automatically import the resource into the Terraform state (for supported resource types) and continue actuation.

Not all resource types are supported, refer to documentation.

worker_pool

string

Output only. The user-specified Cloud Build worker pool resource in which the Cloud Build job will execute. Format: projects/{project}/locations/{location}/workerPools/{workerPoolId}. If this field is unspecified, the default Cloud Build worker pool will be used.

tf_version_constraint

string

Output only. The user-specified Terraform version constraint. Example: "=1.3.10".

tf_version

string

Output only. The version of Terraform used to create the Revision. It is in the format of "Major.Minor.Patch", for example, "1.3.10".

quota_validation_results

string

Output only. Cloud Storage path containing quota validation results. This field is set when a user sets Deployment.quota_validation field to ENABLED or ENFORCED. Format: gs://{bucket}/{object}.

quota_validation

QuotaValidation

Optional. Input to control quota checks for resources in terraform configuration files. There are limited resources on which quota validation applies.

Union field blueprint. Blueprint that was deployed. blueprint can be only one of the following:
terraform_blueprint

TerraformBlueprint

Output only. A blueprint described using Terraform's HashiCorp Configuration Language as a root module.

Action

Actions that generate a revision.

Enums
ACTION_UNSPECIFIED The default value. This value is used if the action is omitted.
CREATE The revision was generated by creating a deployment.
UPDATE The revision was generated by updating a deployment.
DELETE The revision was deleted.

ErrorCode

Possible errors if Revision could not be created or updated successfully.

Enums
ERROR_CODE_UNSPECIFIED No error code was specified.
CLOUD_BUILD_PERMISSION_DENIED Cloud Build failed due to a permission issue.
APPLY_BUILD_API_FAILED Cloud Build job associated with creating or updating a deployment could not be started.
APPLY_BUILD_RUN_FAILED Cloud Build job associated with creating or updating a deployment was started but failed.
QUOTA_VALIDATION_FAILED quota validation failed for one or more resources in terraform configuration files.

State

Possible states of a revision.

Enums
STATE_UNSPECIFIED The default value. This value is used if the state is omitted.
APPLYING The revision is being applied.
APPLIED The revision was applied successfully.
FAILED The revision could not be applied successfully.

Statefile

Contains info about a Terraform state file

Fields
signed_uri

string

Output only. Cloud Storage signed URI used for downloading or uploading the state file.

TerraformBlueprint

TerraformBlueprint describes the source of a Terraform root module which describes the resources and configs to be deployed.

Fields
input_values

map<string, TerraformVariable>

Input variable values for the Terraform blueprint.

Union field source. Location of the source configs. Required. source can be only one of the following:
gcs_source

string

URI of an object in Google Cloud Storage. Format: gs://{bucket}/{object}

URI may also specify an object version for zipped objects. Format: gs://{bucket}/{object}#{version}

git_source

GitSource

URI of a public Git repo.

TerraformError

Errors encountered during actuation using Terraform

Fields
resource_address

string

Address of the resource associated with the error, e.g. google_compute_network.vpc_network.

http_response_code

int32

HTTP response code returned from Google Cloud Platform APIs when Terraform fails to provision the resource. If unset or 0, no HTTP response code was returned by Terraform.

error_description

string

A human-readable error description.

error

Status

Original error response from underlying Google API, if available.

TerraformOutput

Describes a Terraform output.

Fields
sensitive

bool

Identifies whether Terraform has set this output as a potential sensitive value.

value

Value

Value of output.

TerraformVariable

A Terraform input variable.

Fields
input_value

Value

Input variable value.

TerraformVersion

A TerraformVersion represents the support state the corresponding Terraform version.

Fields
name

string

Identifier. The version name is in the format: 'projects/{project_id}/locations/{location}/terraformVersions/{terraform_version}'.

state

State

Output only. The state of the version, ACTIVE, DEPRECATED or OBSOLETE.

support_time

Timestamp

Output only. When the version is supported.

deprecate_time

Timestamp

Output only. When the version is deprecated.

obsolete_time

Timestamp

Output only. When the version is obsolete.

State

Possible states of a TerraformVersion.

Enums
STATE_UNSPECIFIED The default value. This value is used if the state is omitted.
ACTIVE The version is actively supported.
DEPRECATED The version is deprecated.
OBSOLETE The version is obsolete.

UnlockDeploymentRequest

A request to unlock a state file passed to a 'UnlockDeployment' call.

Fields
name

string

Required. The name of the deployment in the format: 'projects/{project_id}/locations/{location}/deployments/{deployment}'.

lock_id

int64

Required. Lock ID of the lock file to be unlocked.

UpdateDeploymentRequest

Fields
update_mask

FieldMask

Optional. Field mask used to specify the fields to be overwritten in the Deployment resource by the update.

The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.

deployment

Deployment

Required. Deployment to update.

The deployment's name field is used to identify the resource to be updated. Format: projects/{project}/locations/{location}/deployments/{deployment}

Authorization requires the following IAM permission on the specified resource deployment:

  • config.deployments.update
request_id

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).