# frozen_string_literal: true # Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module ConfigService module V1 # A Deployment is a group of resources and configs managed and provisioned by # Infra Manager. # @!attribute [rw] terraform_blueprint # @return [::Google::Cloud::ConfigService::V1::TerraformBlueprint] # A blueprint described using Terraform's HashiCorp Configuration Language # as a root module. # @!attribute [rw] name # @return [::String] # Resource name of the deployment. # Format: `projects/{project}/locations/{location}/deployments/{deployment}` # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. Time when the deployment was created. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. Time when the deployment was last modified. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # User-defined metadata for the deployment. # @!attribute [r] state # @return [::Google::Cloud::ConfigService::V1::Deployment::State] # Output only. Current state of the deployment. # @!attribute [r] latest_revision # @return [::String] # Output only. Revision name that was most recently applied. # Format: `projects/{project}/locations/{location}/deployments/{deployment}/ # revisions/\\{revision}` # @!attribute [r] state_detail # @return [::String] # Output only. Additional information regarding the current state. # @!attribute [r] error_code # @return [::Google::Cloud::ConfigService::V1::Deployment::ErrorCode] # Output only. Error code describing errors that may have occurred. # @!attribute [r] delete_results # @return [::Google::Cloud::ConfigService::V1::ApplyResults] # Output only. Location of artifacts from a DeleteDeployment operation. # @!attribute [r] delete_build # @return [::String] # Output only. Cloud Build instance UUID associated with deleting this # deployment. # @!attribute [r] delete_logs # @return [::String] # Output only. Location of Cloud Build logs in Google Cloud Storage, # populated when deleting this deployment. Format: `gs://{bucket}/{object}`. # @!attribute [r] tf_errors # @return [::Array<::Google::Cloud::ConfigService::V1::TerraformError>] # Output only. Errors encountered when deleting this deployment. # Errors are truncated to 10 entries, see `delete_results` and `error_logs` # for full details. # @!attribute [r] error_logs # @return [::String] # Output only. Location of Terraform error logs in Google Cloud Storage. # Format: `gs://{bucket}/{object}`. # @!attribute [rw] artifacts_gcs_bucket # @return [::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://--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 # @!attribute [rw] service_account # @return [::String] # Optional. User-specified Service Account (SA) credentials to be used when # actuating resources. # Format: `projects/{projectID}/serviceAccounts/{serviceAccount}` # @!attribute [rw] import_existing_resources # @return [::Boolean] # 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. # @!attribute [rw] worker_pool # @return [::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. # @!attribute [r] lock_state # @return [::Google::Cloud::ConfigService::V1::Deployment::LockState] # Output only. Current lock state of the deployment. class Deployment include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Possible states of a deployment. module State # The default value. This value is used if the state is omitted. STATE_UNSPECIFIED = 0 # The deployment is being created. CREATING = 1 # The deployment is healthy. ACTIVE = 2 # The deployment is being updated. UPDATING = 3 # The deployment is being deleted. DELETING = 4 # The deployment has encountered an unexpected error. FAILED = 5 # The deployment is no longer being actively reconciled. # This may be the result of recovering the project after deletion. SUSPENDED = 6 # The deployment has been deleted. DELETED = 7 end # Possible errors that can occur with deployments. module ErrorCode # No error code was specified. ERROR_CODE_UNSPECIFIED = 0 # The revision failed. See Revision for more details. REVISION_FAILED = 1 # Cloud Build failed due to a permission issue. CLOUD_BUILD_PERMISSION_DENIED = 3 # Cloud Build job associated with a deployment deletion could not be # started. DELETE_BUILD_API_FAILED = 5 # Cloud Build job associated with a deployment deletion was started but # failed. DELETE_BUILD_RUN_FAILED = 6 # Cloud Storage bucket creation failed due to a permission issue. BUCKET_CREATION_PERMISSION_DENIED = 7 # Cloud Storage bucket creation failed due to an issue unrelated to # permissions. BUCKET_CREATION_FAILED = 8 end # Possible lock states of a deployment. module LockState # The default value. This value is used if the lock state is omitted. LOCK_STATE_UNSPECIFIED = 0 # The deployment is locked. LOCKED = 1 # The deployment is unlocked. UNLOCKED = 2 # The deployment is being locked. LOCKING = 3 # The deployment is being unlocked. UNLOCKING = 4 # The deployment has failed to lock. LOCK_FAILED = 5 # The deployment has failed to unlock. UNLOCK_FAILED = 6 end end # TerraformBlueprint describes the source of a Terraform root module which # describes the resources and configs to be deployed. # @!attribute [rw] gcs_source # @return [::String] # Required. 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}` # @!attribute [rw] git_source # @return [::Google::Cloud::ConfigService::V1::GitSource] # Required. URI of a public Git repo. # @!attribute [rw] input_values # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::ConfigService::V1::TerraformVariable}] # Input variable values for the Terraform blueprint. class TerraformBlueprint include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::Google::Cloud::ConfigService::V1::TerraformVariable] class InputValuesEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A Terraform input variable. # @!attribute [rw] input_value # @return [::Google::Protobuf::Value] # Input variable value. class TerraformVariable include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Outputs and artifacts from applying a deployment. # @!attribute [rw] content # @return [::String] # Location of a blueprint copy and other manifests in Google Cloud Storage. # Format: `gs://{bucket}/{object}` # @!attribute [rw] artifacts # @return [::String] # Location of artifacts (e.g. logs) in Google Cloud Storage. # Format: `gs://{bucket}/{object}` # @!attribute [rw] outputs # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::ConfigService::V1::TerraformOutput}] # Map of output name to output info. class ApplyResults include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::Google::Cloud::ConfigService::V1::TerraformOutput] class OutputsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Describes a Terraform output. # @!attribute [rw] sensitive # @return [::Boolean] # Identifies whether Terraform has set this output as a potential # sensitive value. # @!attribute [rw] value # @return [::Google::Protobuf::Value] # Value of output. class TerraformOutput include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] parent # @return [::String] # Required. The parent in whose context the Deployments are listed. The # parent value is in the format: # 'projects/\\{project_id}/locations/\\{location}'. # @!attribute [rw] page_size # @return [::Integer] # When requesting a page of resources, 'page_size' specifies number of # resources to return. If unspecified or set to 0, all resources will be # returned. # @!attribute [rw] page_token # @return [::String] # Token returned by previous call to 'ListDeployments' which specifies the # position in the list from where to continue listing the resources. # @!attribute [rw] filter # @return [::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 # @!attribute [rw] order_by # @return [::String] # Field to use to sort the list. class ListDeploymentsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] deployments # @return [::Array<::Google::Cloud::ConfigService::V1::Deployment>] # List of {::Google::Cloud::ConfigService::V1::Deployment Deployment}s. # @!attribute [rw] next_page_token # @return [::String] # Token to be supplied to the next ListDeployments request via `page_token` # to obtain the next set of results. # @!attribute [rw] unreachable # @return [::Array<::String>] # Locations that could not be reached. class ListDeploymentsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] name # @return [::String] # Required. The name of the deployment. Format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}'. class GetDeploymentRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to list Revisions passed to a 'ListRevisions' call. # @!attribute [rw] parent # @return [::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}'. # @!attribute [rw] page_size # @return [::Integer] # When requesting a page of resources, `page_size` specifies number of # resources to return. If unspecified or set to 0, all resources will be # returned. # @!attribute [rw] page_token # @return [::String] # Token returned by previous call to 'ListRevisions' which specifies the # position in the list from where to continue listing the resources. # @!attribute [rw] filter # @return [::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 # @!attribute [rw] order_by # @return [::String] # Field to use to sort the list. class ListRevisionsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A response to a 'ListRevisions' call. Contains a list of Revisions. # @!attribute [rw] revisions # @return [::Array<::Google::Cloud::ConfigService::V1::Revision>] # List of {::Google::Cloud::ConfigService::V1::Revision Revision}s. # @!attribute [rw] next_page_token # @return [::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. # @!attribute [rw] unreachable # @return [::Array<::String>] # Locations that could not be reached. class ListRevisionsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to get a Revision from a 'GetRevision' call. # @!attribute [rw] name # @return [::String] # Required. The name of the Revision in the format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}/revisions/\\{revision}'. class GetRevisionRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] parent # @return [::String] # Required. The parent in whose context the Deployment is created. The parent # value is in the format: 'projects/\\{project_id}/locations/\\{location}'. # @!attribute [rw] deployment_id # @return [::String] # Required. The Deployment ID. # @!attribute [rw] deployment # @return [::Google::Cloud::ConfigService::V1::Deployment] # Required. {::Google::Cloud::ConfigService::V1::Deployment Deployment} resource to be # created. # @!attribute [rw] request_id # @return [::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). class CreateDeploymentRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] update_mask # @return [::Google::Protobuf::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. # @!attribute [rw] deployment # @return [::Google::Cloud::ConfigService::V1::Deployment] # Required. {::Google::Cloud::ConfigService::V1::Deployment Deployment} to update. # # The deployment's `name` field is used to identify the resource to be # updated. Format: # `projects/{project}/locations/{location}/deployments/{deployment}` # @!attribute [rw] request_id # @return [::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). class UpdateDeploymentRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] name # @return [::String] # Required. The name of the Deployment in the format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}'. # @!attribute [rw] request_id # @return [::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). # @!attribute [rw] force # @return [::Boolean] # 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.) # @!attribute [rw] delete_policy # @return [::Google::Cloud::ConfigService::V1::DeleteDeploymentRequest::DeletePolicy] # Optional. Policy on how resources actuated by the deployment should be # deleted. If unspecified, the default behavior is to delete the underlying # resources. class DeleteDeploymentRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Policy on how resources actuated by the deployment should be deleted. module DeletePolicy # Unspecified policy, resources will be deleted. DELETE_POLICY_UNSPECIFIED = 0 # Deletes resources actuated by the deployment. DELETE = 1 # Abandons resources and only deletes the deployment and its metadata. ABANDON = 2 end end # Represents the metadata of the long-running operation. # @!attribute [r] deployment_metadata # @return [::Google::Cloud::ConfigService::V1::DeploymentOperationMetadata] # Output only. Metadata about the deployment operation state. # @!attribute [r] preview_metadata # @return [::Google::Cloud::ConfigService::V1::PreviewOperationMetadata] # Output only. Metadata about the preview operation state. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. Time when the operation was created. # @!attribute [r] end_time # @return [::Google::Protobuf::Timestamp] # Output only. Time when the operation finished running. # @!attribute [r] target # @return [::String] # Output only. Server-defined resource path for the target of the operation. # @!attribute [r] verb # @return [::String] # Output only. Name of the verb executed by the operation. # @!attribute [r] status_message # @return [::String] # Output only. Human-readable status of the operation, if any. # @!attribute [r] requested_cancellation # @return [::Boolean] # 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 google.rpc.Status.code} of 1, corresponding to # `Code.CANCELLED`. # @!attribute [r] api_version # @return [::String] # Output only. API version used to start the operation. class OperationMetadata include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # 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. # @!attribute [r] terraform_blueprint # @return [::Google::Cloud::ConfigService::V1::TerraformBlueprint] # Output only. A blueprint described using Terraform's HashiCorp # Configuration Language as a root module. # @!attribute [rw] name # @return [::String] # Revision name. Format: # `projects/{project}/locations/{location}/deployments/{deployment}/ # revisions/\\{revision}` # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. Time when the revision was created. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. Time when the revision was last modified. # @!attribute [r] action # @return [::Google::Cloud::ConfigService::V1::Revision::Action] # Output only. The action which created this revision # @!attribute [r] state # @return [::Google::Cloud::ConfigService::V1::Revision::State] # Output only. Current state of the revision. # @!attribute [r] apply_results # @return [::Google::Cloud::ConfigService::V1::ApplyResults] # Output only. Outputs and artifacts from applying a deployment. # @!attribute [r] state_detail # @return [::String] # Output only. Additional info regarding the current state. # @!attribute [r] error_code # @return [::Google::Cloud::ConfigService::V1::Revision::ErrorCode] # Output only. Code describing any errors that may have occurred. # @!attribute [r] build # @return [::String] # Output only. Cloud Build instance UUID associated with this revision. # @!attribute [r] logs # @return [::String] # Output only. Location of Revision operation logs in # `gs://{bucket}/{object}` format. # @!attribute [r] tf_errors # @return [::Array<::Google::Cloud::ConfigService::V1::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. # @!attribute [r] error_logs # @return [::String] # Output only. Location of Terraform error logs in Google Cloud Storage. # Format: `gs://{bucket}/{object}`. # @!attribute [r] service_account # @return [::String] # Output only. User-specified Service Account (SA) to be used as credential # to manage resources. Format: # `projects/{projectID}/serviceAccounts/{serviceAccount}` # @!attribute [r] import_existing_resources # @return [::Boolean] # 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. # @!attribute [r] worker_pool # @return [::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. class Revision include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Actions that generate a revision. module Action # The default value. This value is used if the action is omitted. ACTION_UNSPECIFIED = 0 # The revision was generated by creating a deployment. CREATE = 1 # The revision was generated by updating a deployment. UPDATE = 2 # The revision was deleted. DELETE = 3 end # Possible states of a revision. module State # The default value. This value is used if the state is omitted. STATE_UNSPECIFIED = 0 # The revision is being applied. APPLYING = 1 # The revision was applied successfully. APPLIED = 2 # The revision could not be applied successfully. FAILED = 3 end # Possible errors if Revision could not be created or updated successfully. module ErrorCode # No error code was specified. ERROR_CODE_UNSPECIFIED = 0 # Cloud Build failed due to a permission issue. CLOUD_BUILD_PERMISSION_DENIED = 1 # Cloud Build job associated with creating or updating a deployment could # not be started. APPLY_BUILD_API_FAILED = 4 # Cloud Build job associated with creating or updating a deployment was # started but failed. APPLY_BUILD_RUN_FAILED = 5 end end # Errors encountered during actuation using Terraform # @!attribute [rw] resource_address # @return [::String] # Address of the resource associated with the error, # e.g. `google_compute_network.vpc_network`. # @!attribute [rw] http_response_code # @return [::Integer] # 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. # @!attribute [rw] error_description # @return [::String] # A human-readable error description. # @!attribute [rw] error # @return [::Google::Rpc::Status] # Original error response from underlying Google API, if available. class TerraformError include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of files in a Git repository. # @!attribute [rw] repo # @return [::String] # Optional. Repository URL. # Example: 'https://github.com/kubernetes/examples.git' # @!attribute [rw] directory # @return [::String] # Optional. Subdirectory inside the repository. # Example: 'staging/my-package' # @!attribute [rw] ref # @return [::String] # Optional. Git reference (e.g. branch or tag). class GitSource include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Ephemeral metadata content describing the state of a deployment operation. # @!attribute [rw] step # @return [::Google::Cloud::ConfigService::V1::DeploymentOperationMetadata::DeploymentStep] # The current step the deployment operation is running. # @!attribute [rw] apply_results # @return [::Google::Cloud::ConfigService::V1::ApplyResults] # Outputs and artifacts from applying a deployment. # @!attribute [r] build # @return [::String] # Output only. Cloud Build instance UUID associated with this operation. # @!attribute [r] logs # @return [::String] # Output only. Location of Deployment operations logs in # `gs://{bucket}/{object}` format. class DeploymentOperationMetadata include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The possible steps a deployment may be running. module DeploymentStep # Unspecified deployment step DEPLOYMENT_STEP_UNSPECIFIED = 0 # Infra Manager is creating a Google Cloud Storage bucket to store # artifacts and metadata about the deployment and revision PREPARING_STORAGE_BUCKET = 1 # Downloading the blueprint onto the Google Cloud Storage bucket DOWNLOADING_BLUEPRINT = 2 # Initializing Terraform using `terraform init` RUNNING_TF_INIT = 3 # Running `terraform plan` RUNNING_TF_PLAN = 4 # Actuating resources using Terraform using `terraform apply` RUNNING_TF_APPLY = 5 # Destroying resources using Terraform using `terraform destroy` RUNNING_TF_DESTROY = 6 # Validating the uploaded TF state file when unlocking a deployment RUNNING_TF_VALIDATE = 7 # Unlocking a deployment UNLOCKING_DEPLOYMENT = 8 # Operation was successful SUCCEEDED = 9 # Operation failed FAILED = 10 end end # Resource represents a Google Cloud Platform resource actuated by IM. # Resources are child resources of Revisions. # @!attribute [r] name # @return [::String] # Output only. Resource name. # Format: # `projects/{project}/locations/{location}/deployments/{deployment}/revisions/{revision}/resources/{resource}` # @!attribute [r] terraform_info # @return [::Google::Cloud::ConfigService::V1::ResourceTerraformInfo] # Output only. Terraform-specific info if this resource was created using # Terraform. # @!attribute [r] cai_assets # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::ConfigService::V1::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 # @!attribute [r] intent # @return [::Google::Cloud::ConfigService::V1::Resource::Intent] # Output only. Intent of the resource. # @!attribute [r] state # @return [::Google::Cloud::ConfigService::V1::Resource::State] # Output only. Current state of the resource. class Resource include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::Google::Cloud::ConfigService::V1::ResourceCAIInfo] class CaiAssetsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Possible intent of the resource. module Intent # The default value. This value is used if the intent is omitted. INTENT_UNSPECIFIED = 0 # Infra Manager will create this Resource. CREATE = 1 # Infra Manager will update this Resource. UPDATE = 2 # Infra Manager will delete this Resource. DELETE = 3 # Infra Manager will destroy and recreate this Resource. RECREATE = 4 # Infra Manager will leave this Resource untouched. UNCHANGED = 5 end # Possible states of a resource. module State # The default value. This value is used if the state is omitted. STATE_UNSPECIFIED = 0 # Resource has been planned for reconcile. PLANNED = 1 # Resource is actively reconciling into the intended state. IN_PROGRESS = 2 # Resource has reconciled to intended state. RECONCILED = 3 # Resource failed to reconcile. FAILED = 4 end end # Terraform info of a Resource. # @!attribute [rw] address # @return [::String] # TF resource address that uniquely identifies this resource within this # deployment. # @!attribute [rw] type # @return [::String] # TF resource type # @!attribute [rw] id # @return [::String] # ID attribute of the TF resource class ResourceTerraformInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # CAI info of a Resource. # @!attribute [rw] full_resource_name # @return [::String] # CAI resource name in the format following # https://cloud.google.com/apis/design/resource_names#full_resource_name class ResourceCAIInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to get a Resource from a 'GetResource' call. # @!attribute [rw] name # @return [::String] # Required. The name of the Resource in the format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}/revisions/\\{revision}/resource/\\{resource}'. class GetResourceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to list Resources passed to a 'ListResources' call. # @!attribute [rw] parent # @return [::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}'. # @!attribute [rw] page_size # @return [::Integer] # When requesting a page of resources, 'page_size' specifies number of # resources to return. If unspecified or set to 0, all resources will be # returned. # @!attribute [rw] page_token # @return [::String] # Token returned by previous call to 'ListResources' which specifies the # position in the list from where to continue listing the resources. # @!attribute [rw] filter # @return [::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 # @!attribute [rw] order_by # @return [::String] # Field to use to sort the list. class ListResourcesRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A response to a 'ListResources' call. Contains a list of Resources. # @!attribute [rw] resources # @return [::Array<::Google::Cloud::ConfigService::V1::Resource>] # List of [Resources][]s. # @!attribute [rw] next_page_token # @return [::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. # @!attribute [rw] unreachable # @return [::Array<::String>] # Locations that could not be reached. class ListResourcesResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Contains info about a Terraform state file # @!attribute [r] signed_uri # @return [::String] # Output only. Cloud Storage signed URI used for downloading or uploading the # state file. class Statefile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to export a state file passed to a 'ExportDeploymentStatefile' # call. # @!attribute [rw] parent # @return [::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}'. # @!attribute [rw] draft # @return [::Boolean] # 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. class ExportDeploymentStatefileRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to export a state file passed to a 'ExportRevisionStatefile' # call. # @!attribute [rw] parent # @return [::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}'. class ExportRevisionStatefileRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to import a state file passed to a 'ImportStatefile' call. # @!attribute [rw] parent # @return [::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}'. # @!attribute [rw] lock_id # @return [::Integer] # Required. Lock ID of the lock file to verify that the user who is importing # the state file previously locked the Deployment. # @!attribute [rw] skip_draft # @return [::Boolean] # Optional. class ImportStatefileRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to delete a state file passed to a 'DeleteStatefile' call. # @!attribute [rw] name # @return [::String] # Required. The name of the deployment in the format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}'. # @!attribute [rw] lock_id # @return [::Integer] # Required. Lock ID of the lock file to verify that the user who is deleting # the state file previously locked the Deployment. class DeleteStatefileRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to lock a deployment passed to a 'LockDeployment' call. # @!attribute [rw] name # @return [::String] # Required. The name of the deployment in the format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}'. class LockDeploymentRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to unlock a state file passed to a 'UnlockDeployment' call. # @!attribute [rw] name # @return [::String] # Required. The name of the deployment in the format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}'. # @!attribute [rw] lock_id # @return [::Integer] # Required. Lock ID of the lock file to be unlocked. class UnlockDeploymentRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to get a state file lock info passed to a 'ExportLockInfo' call. # @!attribute [rw] name # @return [::String] # Required. The name of the deployment in the format: # 'projects/\\{project_id}/locations/\\{location}/deployments/\\{deployment}'. class ExportLockInfoRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Details about the lock which locked the deployment. # @!attribute [rw] lock_id # @return [::Integer] # Unique ID for the lock to be overridden with generation ID in the backend. # @!attribute [rw] operation # @return [::String] # Terraform operation, provided by the caller. # @!attribute [rw] info # @return [::String] # Extra information to store with the lock, provided by the caller. # @!attribute [rw] who # @return [::String] # user@hostname when available # @!attribute [rw] version # @return [::String] # Terraform version # @!attribute [rw] create_time # @return [::Google::Protobuf::Timestamp] # Time that the lock was taken. class LockInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A preview represents a set of actions Infra Manager would perform # to move the resources towards the desired state as specified in the # configuration. # @!attribute [rw] terraform_blueprint # @return [::Google::Cloud::ConfigService::V1::TerraformBlueprint] # The terraform blueprint to preview. # @!attribute [rw] name # @return [::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}` # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. Time the preview was created. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. User-defined labels for the preview. # @!attribute [r] state # @return [::Google::Cloud::ConfigService::V1::Preview::State] # Output only. Current state of the preview. # @!attribute [rw] deployment # @return [::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. # @!attribute [rw] preview_mode # @return [::Google::Cloud::ConfigService::V1::Preview::PreviewMode] # Optional. Current mode of preview. # @!attribute [rw] service_account # @return [::String] # Optional. Optional service account. If omitted, the deployment resource # reference must be provided, and the service account attached to the # deployment will be used. # @!attribute [rw] artifacts_gcs_bucket # @return [::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://--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. # @!attribute [rw] worker_pool # @return [::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. # @!attribute [r] error_code # @return [::Google::Cloud::ConfigService::V1::Preview::ErrorCode] # Output only. Code describing any errors that may have occurred. # @!attribute [r] error_status # @return [::Google::Rpc::Status] # Output only. Additional information regarding the current state. # @!attribute [r] build # @return [::String] # Output only. Cloud Build instance UUID associated with this preview. # @!attribute [r] tf_errors # @return [::Array<::Google::Cloud::ConfigService::V1::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. # @!attribute [r] error_logs # @return [::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}`. # @!attribute [r] preview_artifacts # @return [::Google::Cloud::ConfigService::V1::PreviewArtifacts] # Output only. Artifacts from preview. # @!attribute [r] logs # @return [::String] # Output only. Location of preview logs in `gs://{bucket}/{object}` format. class Preview include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Possible states of a preview. module State # The default value. This value is used if the state is unknown. STATE_UNSPECIFIED = 0 # The preview is being created. CREATING = 1 # The preview has succeeded. SUCCEEDED = 2 # The preview is being applied. APPLYING = 3 # The preview is stale. A preview can become stale if a revision has been # applied after this preview was created. STALE = 4 # The preview is being deleted. DELETING = 5 # The preview has encountered an unexpected error. FAILED = 6 # The preview has been deleted. DELETED = 7 end # Preview mode provides options for customizing preview operations. module PreviewMode # Unspecified policy, default mode will be used. PREVIEW_MODE_UNSPECIFIED = 0 # DEFAULT mode generates an execution plan for reconciling current resource # state into expected resource state. DEFAULT = 1 # DELETE mode generates as execution plan for destroying current resources. DELETE = 2 end # Possible errors that can occur with previews. module ErrorCode # No error code was specified. ERROR_CODE_UNSPECIFIED = 0 # Cloud Build failed due to a permissions issue. CLOUD_BUILD_PERMISSION_DENIED = 1 # Cloud Storage bucket failed to create due to a permissions issue. BUCKET_CREATION_PERMISSION_DENIED = 2 # Cloud Storage bucket failed for a non-permissions-related issue. BUCKET_CREATION_FAILED = 3 # Acquiring lock on provided deployment reference failed. DEPLOYMENT_LOCK_ACQUIRE_FAILED = 4 # Preview encountered an error when trying to access Cloud Build API. PREVIEW_BUILD_API_FAILED = 5 # Preview created a build but build failed and logs were generated. PREVIEW_BUILD_RUN_FAILED = 6 end end # Ephemeral metadata content describing the state of a preview operation. # @!attribute [rw] step # @return [::Google::Cloud::ConfigService::V1::PreviewOperationMetadata::PreviewStep] # The current step the preview operation is running. # @!attribute [rw] preview_artifacts # @return [::Google::Cloud::ConfigService::V1::PreviewArtifacts] # Artifacts from preview. # @!attribute [r] logs # @return [::String] # Output only. Location of preview logs in `gs://{bucket}/{object}` format. # @!attribute [r] build # @return [::String] # Output only. Cloud Build instance UUID associated with this preview. class PreviewOperationMetadata include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The possible steps a preview may be running. module PreviewStep # Unspecified preview step. PREVIEW_STEP_UNSPECIFIED = 0 # Infra Manager is creating a Google Cloud Storage bucket to store # artifacts and metadata about the preview. PREPARING_STORAGE_BUCKET = 1 # Downloading the blueprint onto the Google Cloud Storage bucket. DOWNLOADING_BLUEPRINT = 2 # Initializing Terraform using `terraform init`. RUNNING_TF_INIT = 3 # Running `terraform plan`. RUNNING_TF_PLAN = 4 # Fetching a deployment. FETCHING_DEPLOYMENT = 5 # Locking a deployment. LOCKING_DEPLOYMENT = 6 # Unlocking a deployment. UNLOCKING_DEPLOYMENT = 7 # Operation was successful. SUCCEEDED = 8 # Operation failed. FAILED = 9 end end # Artifacts created by preview. # @!attribute [r] content # @return [::String] # Output only. Location of a blueprint copy and other content in Google Cloud # Storage. Format: `gs://{bucket}/{object}` # @!attribute [r] artifacts # @return [::String] # Output only. Location of artifacts in Google Cloud Storage. # Format: `gs://{bucket}/{object}` class PreviewArtifacts include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to create a preview. # @!attribute [rw] parent # @return [::String] # Required. The parent in whose context the Preview is created. The parent # value is in the format: 'projects/\\{project_id}/locations/\\{location}'. # @!attribute [rw] preview_id # @return [::String] # Optional. The preview ID. # @!attribute [rw] preview # @return [::Google::Cloud::ConfigService::V1::Preview] # Required. {::Google::Cloud::ConfigService::V1::Preview Preview} resource to be created. # @!attribute [rw] request_id # @return [::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). class CreatePreviewRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to get details about a preview. # @!attribute [rw] name # @return [::String] # Required. The name of the preview. Format: # 'projects/\\{project_id}/locations/\\{location}/previews/\\{preview}'. class GetPreviewRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to list all previews for a given project and location. # @!attribute [rw] parent # @return [::String] # Required. The parent in whose context the Previews are listed. The parent # value is in the format: 'projects/\\{project_id}/locations/\\{location}'. # @!attribute [rw] page_size # @return [::Integer] # Optional. When requesting a page of resources, 'page_size' specifies number # of resources to return. If unspecified or set to 0, all resources will be # returned. # @!attribute [rw] page_token # @return [::String] # Optional. Token returned by previous call to 'ListDeployments' which # specifies the position in the list from where to continue listing the # resources. # @!attribute [rw] filter # @return [::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 # @!attribute [rw] order_by # @return [::String] # Optional. Field to use to sort the list. class ListPreviewsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A response to a `ListPreviews` call. Contains a list of Previews. # @!attribute [rw] previews # @return [::Array<::Google::Cloud::ConfigService::V1::Preview>] # List of [Previews][]s. # @!attribute [rw] next_page_token # @return [::String] # Token to be supplied to the next ListPreviews request via `page_token` # to obtain the next set of results. # @!attribute [rw] unreachable # @return [::Array<::String>] # Locations that could not be reached. class ListPreviewsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to delete a preview. # @!attribute [rw] name # @return [::String] # Required. The name of the Preview in the format: # 'projects/\\{project_id}/locations/\\{location}/previews/\\{preview}'. # @!attribute [rw] request_id # @return [::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). class DeletePreviewRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A request to export preview results. # @!attribute [rw] parent # @return [::String] # Required. The preview whose results should be exported. The preview value # is in the format: # 'projects/\\{project_id}/locations/\\{location}/previews/\\{preview}'. class ExportPreviewResultRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A response to `ExportPreviewResult` call. Contains preview results. # @!attribute [r] result # @return [::Google::Cloud::ConfigService::V1::PreviewResult] # Output only. Signed URLs for accessing the plan files. class ExportPreviewResultResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Contains a signed Cloud Storage URLs. # @!attribute [r] binary_signed_uri # @return [::String] # Output only. Plan binary signed URL # @!attribute [r] json_signed_uri # @return [::String] # Output only. Plan JSON signed URL class PreviewResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end end end