"""Generated message classes for designcenter version v1.

Design and share deployable application architectures.
"""
# NOTE: This file is autogenerated and should not be edited by hand.

from apitools.base.protorpclite import messages as _messages
from apitools.base.py import encoding
from apitools.base.py import extra_types


package = 'designcenter'


class AdcMetadata(_messages.Message):
  r"""Application Design Center specific information and metadata.

  Fields:
    applicationTemplateUri: Output only. ApplicationTemplate URI
    applicationUri: Output only. Application URI
    spaceUri: Output only. Space URI
  """

  applicationTemplateUri = _messages.StringField(1)
  applicationUri = _messages.StringField(2)
  spaceUri = _messages.StringField(3)


class AlternateDefault(_messages.Message):
  r"""Alternate default for a UI input.

  Enums:
    TypeValueValuesEnum: Output only. Type of alternate default.

  Fields:
    type: Output only. Type of alternate default.
    value: Output only. Value of the alternate default.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Output only. Type of alternate default.

    Values:
      DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED: Default
      DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY: A more secure default.
      DISPLAY_VARIABLE_ALTERNATE_TYPE_DC: A default specifically needed for
        Application Design center.
    """
    DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED = 0
    DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY = 1
    DISPLAY_VARIABLE_ALTERNATE_TYPE_DC = 2

  type = _messages.EnumField('TypeValueValuesEnum', 1)
  value = _messages.MessageField('extra_types.JsonValue', 2)


class AlternateDefaultInput(_messages.Message):
  r"""Alternate default input for a UI.

  Enums:
    TypeValueValuesEnum: Optional. Type of alternate default.

  Fields:
    type: Optional. Type of alternate default.
    value: Optional. Value of the alternate default.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Optional. Type of alternate default.

    Values:
      DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED: Default
      DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY: A more secure default.
      DISPLAY_VARIABLE_ALTERNATE_TYPE_DC: A default specifically needed for
        Application Design center.
    """
    DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED = 0
    DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY = 1
    DISPLAY_VARIABLE_ALTERNATE_TYPE_DC = 2

  type = _messages.EnumField('TypeValueValuesEnum', 1)
  value = _messages.MessageField('extra_types.JsonValue', 2)


class ApiInfo(_messages.Message):
  r"""ApiInfo represents an API along with its origin.

  Fields:
    api: Required. API name, such as `compute.googleapis.com`.
    systemProvided: Output only. When true, indicates that this API was
      automatically added by Application Design Center. APIs provided by users
      will have this field set to false.
  """

  api = _messages.StringField(1)
  systemProvided = _messages.BooleanField(2)


class AppHubApplicationParameters(_messages.Message):
  r"""App Hub application parameters.

  Fields:
    applicationId: Optional. The App Hub application ID.
    attributes: Optional. The App Hub application attributes.
    hostProjectId: Optional. The host project ID where the App Hub application
      is created.
    location: Optional. The App Hub application location. Only used for
      applications with REGIONAL scope.
    scope: Optional. The App Hub application scope.
  """

  applicationId = _messages.StringField(1)
  attributes = _messages.MessageField('Attributes', 2)
  hostProjectId = _messages.StringField(3)
  location = _messages.StringField(4)
  scope = _messages.MessageField('Scope', 5)


class Application(_messages.Message):
  r"""Represents the application resource.

  Enums:
    CompositionTypeValueValuesEnum: Output only. The composition type of the
      application: STANDARD OR COMPOSITE.
    ParamsUpdateStrategyValueValuesEnum: Optional. Specifies the strategy to
      use when updating the application parameters while updating the
      application template revision.
    StateValueValuesEnum: Output only. Deployment state of the application.
    TypeValueValuesEnum: Optional. The type of the application.

  Fields:
    appParameters: Optional. A list of parameters to attach to the deployment
      source object, which is a catalog entry or application template
      snapshot.
    apphubApplication: Output only. The App Hub App associated with the
      application.
    artifactLocation: Output only. Details of the location where the IaC for
      this application was last successfully exported.
    attributes: Optional. Attributes of the application.
    componentParameters: Optional. A list of component parameters to associate
      with the application.
    compositeApplicationParameters: Optional. Parameters that are required for
      composite applications.
    compositionType: Output only. The composition type of the application:
      STANDARD OR COMPOSITE.
    connectionConfigs: Optional. Connection configuration for the application.
    createTime: Output only. Create timestamp.
    deploymentGroupMetadata: Output only. The deployment group metadata of the
      application. This is applicable only for composite applications.
    deploymentMetadata: Output only. Deployment metadata of the application.
    deploymentProject: Optional. Deployment project of the application.
    deploymentRegion: Optional. The region where the application is deployed.
    deploymentRevision: Output only. [Output only] Optional Infra Manager
      deployment Id with revision
    deploymentTarget: Optional. The deployment target of the application.
    description: Optional. Description of the application.
    displayName: Optional. Display name of the application.
    importExistingResources: Optional. Import existing resources into the
      application.
    name: Identifier. The name of the application. Format: projects/{project}/
      locations/{location}/spaces/{space}/applications/{application}
    paramsUpdateStrategy: Optional. Specifies the strategy to use when
      updating the application parameters while updating the application
      template revision.
    previewReference: Output only. Preview reference for the application.
    projectParameters: Output only. List of project parameters for the
      application.
    rolesApisConfig: Optional. Project-specific configurations required for
      application deployment, including IAM roles and APIs. The list can
      contain up to 100 items.
    scope: Required. Scope of the application.
    serializedApplicationTemplate: Output only. [Output only] Serialized
      application template.
    serviceAccount: Optional. Your own service account that you use to deploy
      an application.
    source: Required. The application deployment source.
    state: Output only. Deployment state of the application.
    type: Optional. The type of the application.
    updateTime: Output only. Update timestamp.
    updatedTemplateRevision: Output only. The updated template revision
      because of which the application is outdated.
  """

  class CompositionTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The composition type of the application: STANDARD OR
    COMPOSITE.

    Values:
      APPLICATION_COMPOSITION_TYPE_UNSPECIFIED: ApplicationCompositionType is
        UNSPECIFIED.
      STANDARD: ApplicationCompositionType is STANDARD. The
        applicationTemplate or application is composed of components only of
        type service/workload/asset and has a single root module in terraform
        code.
      COMPOSITE: ApplicationCompositionType is COMPOSITE. The template is
        composed of STANDARD applicationTemplate(s) and might be having
        multiple root modules in terraform code.
    """
    APPLICATION_COMPOSITION_TYPE_UNSPECIFIED = 0
    STANDARD = 1
    COMPOSITE = 2

  class ParamsUpdateStrategyValueValuesEnum(_messages.Enum):
    r"""Optional. Specifies the strategy to use when updating the application
    parameters while updating the application template revision.

    Values:
      UPDATE_STRATEGY_UNSPECIFIED: Retains the existing value for the field.
      REPLACE: Replaces the existing field values with the provided ones.
    """
    UPDATE_STRATEGY_UNSPECIFIED = 0
    REPLACE = 1

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. Deployment state of the application.

    Values:
      STATE_UNSPECIFIED: Unspecified application deployment state.
      DRAFT: Application is in draft.
      CREATING_DEPLOYMENT: New application deployment is in progress.
      UPDATING_DEPLOYMENT: Update application deployment is in progress.
      DELETING: Delete application deployment is in progress.
      DEPLOYED: Application deployment is completed.
      DELETED: Application deployment is deleted.
      FAILED: Application deployment is failed.
      DEPLOYING: Application deployment is in progress.
    """
    STATE_UNSPECIFIED = 0
    DRAFT = 1
    CREATING_DEPLOYMENT = 2
    UPDATING_DEPLOYMENT = 3
    DELETING = 4
    DEPLOYED = 5
    DELETED = 6
    FAILED = 7
    DEPLOYING = 8

  class TypeValueValuesEnum(_messages.Enum):
    r"""Optional. The type of the application.

    Values:
      APPLICATION_TYPE_UNSPECIFIED: Application type is unspecified.
      TERRAFORM_APP: Application type is terraform application.
      HELM_APP: Application type is helm application.
    """
    APPLICATION_TYPE_UNSPECIFIED = 0
    TERRAFORM_APP = 1
    HELM_APP = 2

  appParameters = _messages.MessageField('Parameter', 1, repeated=True)
  apphubApplication = _messages.StringField(2)
  artifactLocation = _messages.MessageField('ArtifactLocation', 3)
  attributes = _messages.MessageField('Attributes', 4)
  componentParameters = _messages.MessageField('ComponentParameters', 5, repeated=True)
  compositeApplicationParameters = _messages.MessageField('CompositeApplicationParameters', 6)
  compositionType = _messages.EnumField('CompositionTypeValueValuesEnum', 7)
  connectionConfigs = _messages.MessageField('ConnectionConfig', 8, repeated=True)
  createTime = _messages.StringField(9)
  deploymentGroupMetadata = _messages.MessageField('DeploymentGroupMetadata', 10)
  deploymentMetadata = _messages.MessageField('DeploymentMetadata', 11)
  deploymentProject = _messages.StringField(12)
  deploymentRegion = _messages.StringField(13)
  deploymentRevision = _messages.StringField(14)
  deploymentTarget = _messages.MessageField('DeploymentTarget', 15)
  description = _messages.StringField(16)
  displayName = _messages.StringField(17)
  importExistingResources = _messages.BooleanField(18)
  name = _messages.StringField(19)
  paramsUpdateStrategy = _messages.EnumField('ParamsUpdateStrategyValueValuesEnum', 20)
  previewReference = _messages.StringField(21)
  projectParameters = _messages.MessageField('ProjectParameters', 22, repeated=True)
  rolesApisConfig = _messages.MessageField('RolesAndApisConfig', 23, repeated=True)
  scope = _messages.MessageField('Scope', 24)
  serializedApplicationTemplate = _messages.MessageField('SerializedApplicationTemplate', 25)
  serviceAccount = _messages.StringField(26)
  source = _messages.MessageField('DeploymentSource', 27)
  state = _messages.EnumField('StateValueValuesEnum', 28)
  type = _messages.EnumField('TypeValueValuesEnum', 29)
  updateTime = _messages.StringField(30)
  updatedTemplateRevision = _messages.MessageField('UpdatedTemplateRevision', 31)


class ApplicationOperationMetadata(_messages.Message):
  r"""Ephemeral metadata depicting the state of the delete operation.

  Fields:
    build: Output only. Cloud Build instance UUID associated with the delete
      operation.
    step: Output only. The current step of the delete operation. Associated
      with Infrastructure Manager and App Hub.
  """

  build = _messages.StringField(1)
  step = _messages.StringField(2)


class ApplicationOutputParameters(_messages.Message):
  r"""The application output parameters of the deployment.

  Fields:
    helmApplicationOutputParameters: Output only. Helm application output
      parameters.
  """

  helmApplicationOutputParameters = _messages.MessageField('HelmApplicationOutputParameters', 1)


class ApplicationTemplate(_messages.Message):
  r"""Application template resource.

  Enums:
    CompositionTypeValueValuesEnum: Optional. Immutable. The composition type
      of the applicationTemplate: STANDARD OR COMPOSITE. This is a create time
      only param.
    IacFormatValueValuesEnum: Output only. The IaC format of the application
      template.

  Fields:
    applicationParameters: Optional. Parameters to apply to all components in
      an application. You can specify projectID and region.
    artifactLocation: Output only. Details of the location where the IaC for
      this ApplicationTemplate was last successfully exported.
    compositionType: Optional. Immutable. The composition type of the
      applicationTemplate: STANDARD OR COMPOSITE. This is a create time only
      param.
    createTime: Output only. Application template creation timestamp.
    description: Optional. Application template description.
    displayName: Optional. Application template display name.
    iacFormat: Output only. The IaC format of the application template.
    latestRevision: Output only. The latest application template revision.
    latestSystemRevisionUri: Output only. The URI of the most recent System
      Revision generated for this ApplicationTemplate. This ID corresponds to
      the `name` field in the ApplicationTemplateSystemRevision resource.
    name: Identifier. Application template name.
    rootInputVariables: Optional. Root level input variables of the
      application template.
    rootOutputVariables: Optional. Root level output variables of the
      application template.
    saasRuntimeContext: Optional. SaaS runtime context for the application
      template.
    serializedApplicationTemplate: Output only. The serialized application
      template.
    updateTime: Output only. Application template update timestamp.
  """

  class CompositionTypeValueValuesEnum(_messages.Enum):
    r"""Optional. Immutable. The composition type of the applicationTemplate:
    STANDARD OR COMPOSITE. This is a create time only param.

    Values:
      APPLICATION_COMPOSITION_TYPE_UNSPECIFIED: ApplicationCompositionType is
        UNSPECIFIED.
      STANDARD: ApplicationCompositionType is STANDARD. The
        applicationTemplate or application is composed of components only of
        type service/workload/asset and has a single root module in terraform
        code.
      COMPOSITE: ApplicationCompositionType is COMPOSITE. The template is
        composed of STANDARD applicationTemplate(s) and might be having
        multiple root modules in terraform code.
    """
    APPLICATION_COMPOSITION_TYPE_UNSPECIFIED = 0
    STANDARD = 1
    COMPOSITE = 2

  class IacFormatValueValuesEnum(_messages.Enum):
    r"""Output only. The IaC format of the application template.

    Values:
      IAC_FORMAT_UNSPECIFIED: IaC format is unspecified.
      TERRAFORM: IaC format is Terraform.
      HELM: IaC format is Helm.
    """
    IAC_FORMAT_UNSPECIFIED = 0
    TERRAFORM = 1
    HELM = 2

  applicationParameters = _messages.MessageField('Parameter', 1, repeated=True)
  artifactLocation = _messages.MessageField('ArtifactLocation', 2)
  compositionType = _messages.EnumField('CompositionTypeValueValuesEnum', 3)
  createTime = _messages.StringField(4)
  description = _messages.StringField(5)
  displayName = _messages.StringField(6)
  iacFormat = _messages.EnumField('IacFormatValueValuesEnum', 7)
  latestRevision = _messages.StringField(8)
  latestSystemRevisionUri = _messages.StringField(9)
  name = _messages.StringField(10)
  rootInputVariables = _messages.MessageField('ComponentVariable', 11, repeated=True)
  rootOutputVariables = _messages.MessageField('ComponentVariable', 12, repeated=True)
  saasRuntimeContext = _messages.MessageField('SaaSRuntimeContext', 13)
  serializedApplicationTemplate = _messages.MessageField('SerializedApplicationTemplate', 14)
  updateTime = _messages.StringField(15)


class ApplicationTemplateRevision(_messages.Message):
  r"""Application template revision resource.

  Fields:
    artifactLocation: Output only. Details of the location where the IaC for
      this ApplicationTemplate Revision was last successfully exported.
    createTime: Output only. The application template revision creation
      timestamp.
    name: Identifier. The application template revision name.
    snapshot: Output only. The serialized application template.
  """

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  createTime = _messages.StringField(2)
  name = _messages.StringField(3)
  snapshot = _messages.MessageField('SerializedApplicationTemplate', 4)


class ApplicationTemplateSystemRevision(_messages.Message):
  r"""Application template system revision resource.

  Messages:
    AnnotationsValue: Output only. Annotations from agentic workflows or other
      system processes. For example: { "designcenter.googleapis.com/agent_id":
      "gemini-3-flash-v1", "designcenter.googleapis.com/llm_agent_summary":
      "Added a Cloud SQL instance",
      "designcenter.googleapis.com/external_ref_id": "trace-uuid-88921-xyz" }

  Fields:
    annotations: Output only. Annotations from agentic workflows or other
      system processes. For example: { "designcenter.googleapis.com/agent_id":
      "gemini-3-flash-v1", "designcenter.googleapis.com/llm_agent_summary":
      "Added a Cloud SQL instance",
      "designcenter.googleapis.com/external_ref_id": "trace-uuid-88921-xyz" }
    createTime: Output only. The application template system revision creation
      timestamp.
    name: Identifier. The application template system revision name. Format: p
      rojects/{project}/locations/{location}/spaces/{space}/applicationTemplat
      es/{application_template}/systemRevisions/{system_revision}
    snapshot: Output only. The serialized application template snapshot at
      this revision.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AnnotationsValue(_messages.Message):
    r"""Output only. Annotations from agentic workflows or other system
    processes. For example: { "designcenter.googleapis.com/agent_id":
    "gemini-3-flash-v1", "designcenter.googleapis.com/llm_agent_summary":
    "Added a Cloud SQL instance",
    "designcenter.googleapis.com/external_ref_id": "trace-uuid-88921-xyz" }

    Messages:
      AdditionalProperty: An additional property for a AnnotationsValue
        object.

    Fields:
      additionalProperties: Additional properties of type AnnotationsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AnnotationsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  annotations = _messages.MessageField('AnnotationsValue', 1)
  createTime = _messages.StringField(2)
  name = _messages.StringField(3)
  snapshot = _messages.MessageField('SerializedApplicationTemplate', 4)


class ApplyCondition(_messages.Message):
  r"""Condition for applying the policy. Accepts the `criticality` and
  `environment` parameters from the application template.

  Fields:
    conditionKey: Required. The key of the parameter for the condition.
    conditionValue: Required. The value of the parameter for the condition.
  """

  conditionKey = _messages.StringField(1)
  conditionValue = _messages.StringField(2)


class ArtifactLocation(_messages.Message):
  r"""Defines the location for storing an artifact, such as generated IaC.

  Fields:
    developerConnectExportConfig: Optional. Source Code Management(SCM) config
      for storing the content, such as generated IaC. Supports sources
      integrated with Developer Connect like GitHub, GitHub Enterprise,
      GitLab, and Bitbucket.
    gcsUri: Optional. The Cloud Storage URI for storing the generated IaC.
  """

  developerConnectExportConfig = _messages.MessageField('DeveloperConnectExportConfig', 1)
  gcsUri = _messages.StringField(2)


class AssessedFramework(_messages.Message):
  r"""Framework assessed and their findings.

  Fields:
    findings: Required. A list of every Finding found during the assessment.
    framework: Required. The framework that was assessed.
    scoreCard: Optional. Score card associated with the report.
    skipped: Optional. Whether the framework was skipped during assessment.
    skippedReason: Optional. Reason for skipping the framework during
      assessment.
  """

  findings = _messages.MessageField('AssessmentFinding', 1, repeated=True)
  framework = _messages.MessageField('Framework', 2)
  scoreCard = _messages.MessageField('ScoreCard', 3)
  skipped = _messages.BooleanField(4)
  skippedReason = _messages.StringField(5)


class AssessmentFinding(_messages.Message):
  r"""Details of an Assessment Finding.

  Enums:
    FindingTypeValueValuesEnum: Required. The type of the finding. Findings
      can be informational, warning, or error.
    SeverityValueValuesEnum: Optional. The severity of the finding.

  Fields:
    adcMetadata: Output only. Metadata related to the Application Design
      Center with the finding.
    additionalNotes: Optional. A description of the additional details about
      finding.
    assessedAsset: Required. Details of the Cloud Asset Inventory asset that
      was assessed.
    assessedFramework: Optional. Details of the framework that was assessed.
    assessedFrameworkId: Optional. The framework that was assessed.
    description: Optional. Description of the finding.
    findingType: Required. The type of the finding. Findings can be
      informational, warning, or error.
    findingsUri: Optional. Link to the findings, if persisted by the domain.
    id: Output only. The Finding ID.
    remediationStep: Optional. A description of the steps that users can take
      to fix the finding.
    sccMetadata: Output only. SCC related metadata for the finding.
    severity: Optional. The severity of the finding.
  """

  class FindingTypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the finding. Findings can be informational,
    warning, or error.

    Values:
      TYPE_UNSPECIFIED: Default value. This value is unused.
      WARNING: Warning finding. Deployment will not be blocked.
      ERROR: Error finding. Deployment will be blocked on ERROR.
    """
    TYPE_UNSPECIFIED = 0
    WARNING = 1
    ERROR = 2

  class SeverityValueValuesEnum(_messages.Enum):
    r"""Optional. The severity of the finding.

    Values:
      SEVERITY_UNSPECIFIED: Default value. This value is unused.
      CRITICAL: Critical severity.
      HIGH: High severity.
      MEDIUM: Medium severity.
      LOW: Low severity.
    """
    SEVERITY_UNSPECIFIED = 0
    CRITICAL = 1
    HIGH = 2
    MEDIUM = 3
    LOW = 4

  adcMetadata = _messages.MessageField('FindingADCMetadata', 1)
  additionalNotes = _messages.StringField(2)
  assessedAsset = _messages.MessageField('AssetDetails', 3)
  assessedFramework = _messages.MessageField('Framework', 4)
  assessedFrameworkId = _messages.StringField(5)
  description = _messages.StringField(6)
  findingType = _messages.EnumField('FindingTypeValueValuesEnum', 7)
  findingsUri = _messages.StringField(8)
  id = _messages.StringField(9)
  remediationStep = _messages.MessageField('RemediationStep', 10)
  sccMetadata = _messages.MessageField('SCCMetadata', 11)
  severity = _messages.EnumField('SeverityValueValuesEnum', 12)


class AssessmentReport(_messages.Message):
  r"""Aggregated assessment report from all domains.

  Fields:
    adcApplicationTemplateUri: Output only. Application Template URI.
    adcApplicationUri: Output only. Application URI.
    adcCatalogTemplateUri: Output only. Catalog Template URI.
    adcSpaceUri: Output only. Space URI.
    createTime: Output only. The time at which the report was created.
    domainAssessmentReports: Output only. Generated best practice reports.
    skippedDomains: Output only. Skipped domains.
  """

  adcApplicationTemplateUri = _messages.StringField(1)
  adcApplicationUri = _messages.StringField(2)
  adcCatalogTemplateUri = _messages.StringField(3)
  adcSpaceUri = _messages.StringField(4)
  createTime = _messages.StringField(5)
  domainAssessmentReports = _messages.MessageField('DomainAssessmentReport', 6, repeated=True)
  skippedDomains = _messages.MessageField('SkippedDomain', 7, repeated=True)


class AssetDetails(_messages.Message):
  r"""Details of a Cloud Asset Inventory asset that caused the finding.

  Fields:
    assetId: Required. Information about the Cloud Asset Inventory asset that
      the framework is assessed against. The full resource name of the asset
      in CAIS format. For details about the format of the full resource name
      for each asset type, see [Resource name format]
      (https://cloud.google.com/asset-inventory/docs/resource-name-format).
    assetType: Optional. The type of Cloud Asset Inventory asset. For a list
      of asset types, see [Supported asset
      types](https://cloud.google.com/asset-inventory/docs/supported-asset-
      types).
  """

  assetId = _messages.StringField(1)
  assetType = _messages.StringField(2)


class Attributes(_messages.Message):
  r"""Consumer provided attributes.

  Fields:
    businessOwners: Optional. Business team that ensures user needs are met
      and value is delivered
    criticality: Optional. User-defined criticality information.
    developerOwners: Optional. Developer team that owns development and
      coding.
    environment: Optional. User-defined environment information.
    operatorOwners: Optional. Operator team that ensures runtime and
      operations.
  """

  businessOwners = _messages.MessageField('ContactInfo', 1, repeated=True)
  criticality = _messages.MessageField('Criticality', 2)
  developerOwners = _messages.MessageField('ContactInfo', 3, repeated=True)
  environment = _messages.MessageField('Environment', 4)
  operatorOwners = _messages.MessageField('ContactInfo', 5, repeated=True)


class AuditConfig(_messages.Message):
  r"""Specifies the audit configuration for a service. The configuration
  determines which permission types are logged, and what identities, if any,
  are exempted from logging. An AuditConfig must have one or more
  AuditLogConfigs. If there are AuditConfigs for both `allServices` and a
  specific service, the union of the two AuditConfigs is used for that
  service: the log_types specified in each AuditConfig are enabled, and the
  exempted_members in each AuditLogConfig are exempted. Example Policy with
  multiple AuditConfigs: { "audit_configs": [ { "service": "allServices",
  "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [
  "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type":
  "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com",
  "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type":
  "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For
  sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
  logging. It also exempts `jose@example.com` from DATA_READ logging, and
  `aliya@example.com` from DATA_WRITE logging.

  Fields:
    auditLogConfigs: The configuration for logging of each type of permission.
    service: Specifies a service that will be enabled for audit logging. For
      example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
      `allServices` is a special value that covers all services.
  """

  auditLogConfigs = _messages.MessageField('AuditLogConfig', 1, repeated=True)
  service = _messages.StringField(2)


class AuditLogConfig(_messages.Message):
  r"""Provides the configuration for logging a type of permissions. Example: {
  "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [
  "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables
  'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
  DATA_READ logging.

  Enums:
    LogTypeValueValuesEnum: The log type that this config enables.

  Fields:
    exemptedMembers: Specifies the identities that do not cause logging for
      this type of permission. Follows the same format of Binding.members.
    logType: The log type that this config enables.
  """

  class LogTypeValueValuesEnum(_messages.Enum):
    r"""The log type that this config enables.

    Values:
      LOG_TYPE_UNSPECIFIED: Default case. Should never be this.
      ADMIN_READ: Admin reads. Example: CloudIAM getIamPolicy
      DATA_WRITE: Data writes. Example: CloudSQL Users create
      DATA_READ: Data reads. Example: CloudSQL Users list
    """
    LOG_TYPE_UNSPECIFIED = 0
    ADMIN_READ = 1
    DATA_WRITE = 2
    DATA_READ = 3

  exemptedMembers = _messages.StringField(1, repeated=True)
  logType = _messages.EnumField('LogTypeValueValuesEnum', 2)


class Binding(_messages.Message):
  r"""Associates `members`, or principals, with a `role`.

  Fields:
    condition: The condition that is associated with this binding. If the
      condition evaluates to `true`, then this binding applies to the current
      request. If the condition evaluates to `false`, then this binding does
      not apply to the current request. However, a different role binding
      might grant the same role to one or more of the principals in this
      binding. To learn which resources support conditions in their IAM
      policies, see the [IAM
      documentation](https://cloud.google.com/iam/help/conditions/resource-
      policies).
    members: Specifies the principals requesting access for a Google Cloud
      resource. `members` can have the following values: * `allUsers`: A
      special identifier that represents anyone who is on the internet; with
      or without a Google account. * `allAuthenticatedUsers`: A special
      identifier that represents anyone who is authenticated with a Google
      account or a service account. Does not include identities that come from
      external identity providers (IdPs) through identity federation. *
      `user:{emailid}`: An email address that represents a specific Google
      account. For example, `alice@example.com` . *
      `serviceAccount:{emailid}`: An email address that represents a Google
      service account. For example, `my-other-
      app@appspot.gserviceaccount.com`. *
      `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`:
      An identifier for a [Kubernetes service
      account](https://cloud.google.com/kubernetes-engine/docs/how-
      to/kubernetes-service-accounts). For example, `my-
      project.svc.id.goog[my-namespace/my-kubernetes-sa]`. *
      `group:{emailid}`: An email address that represents a Google group. For
      example, `admins@example.com`. * `domain:{domain}`: The G Suite domain
      (primary) that represents all the users of that domain. For example,
      `google.com` or `example.com`. * `principal://iam.googleapis.com/locatio
      ns/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A
      single identity in a workforce identity pool. * `principalSet://iam.goog
      leapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`:
      All workforce identities in a group. * `principalSet://iam.googleapis.co
      m/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{
      attribute_value}`: All workforce identities with a specific attribute
      value. * `principalSet://iam.googleapis.com/locations/global/workforcePo
      ols/{pool_id}/*`: All identities in a workforce identity pool. * `princi
      pal://iam.googleapis.com/projects/{project_number}/locations/global/work
      loadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single
      identity in a workload identity pool. * `principalSet://iam.googleapis.c
      om/projects/{project_number}/locations/global/workloadIdentityPools/{poo
      l_id}/group/{group_id}`: A workload identity pool group. * `principalSet
      ://iam.googleapis.com/projects/{project_number}/locations/global/workloa
      dIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`:
      All identities in a workload identity pool with a certain attribute. * `
      principalSet://iam.googleapis.com/projects/{project_number}/locations/gl
      obal/workloadIdentityPools/{pool_id}/*`: All identities in a workload
      identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email
      address (plus unique identifier) representing a user that has been
      recently deleted. For example,
      `alice@example.com?uid=123456789012345678901`. If the user is recovered,
      this value reverts to `user:{emailid}` and the recovered user retains
      the role in the binding. *
      `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
      (plus unique identifier) representing a service account that has been
      recently deleted. For example, `my-other-
      app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the
      service account is undeleted, this value reverts to
      `serviceAccount:{emailid}` and the undeleted service account retains the
      role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An
      email address (plus unique identifier) representing a Google group that
      has been recently deleted. For example,
      `admins@example.com?uid=123456789012345678901`. If the group is
      recovered, this value reverts to `group:{emailid}` and the recovered
      group retains the role in the binding. * `deleted:principal://iam.google
      apis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attr
      ibute_value}`: Deleted single identity in a workforce identity pool. For
      example, `deleted:principal://iam.googleapis.com/locations/global/workfo
      rcePools/my-pool-id/subject/my-subject-attribute-value`.
    role: Role that is assigned to the list of `members`, or principals. For
      example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an
      overview of the IAM roles and permissions, see the [IAM
      documentation](https://cloud.google.com/iam/docs/roles-overview). For a
      list of the available pre-defined roles, see
      [here](https://cloud.google.com/iam/docs/understanding-roles).
  """

  condition = _messages.MessageField('Expr', 1)
  members = _messages.StringField(2, repeated=True)
  role = _messages.StringField(3)


class CancelOperationRequest(_messages.Message):
  r"""The request message for Operations.CancelOperation."""


class Catalog(_messages.Message):
  r"""A catalog is a collection of templates.

  Fields:
    createTime: Output only. The catalog creation timestamp.
    description: Optional. The catalog description.
    displayName: Optional. The catalog display name.
    name: Identifier. The catalog name in the following format:
      `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`
    updateTime: Output only. The catalog update timestamp.
  """

  createTime = _messages.StringField(1)
  description = _messages.StringField(2)
  displayName = _messages.StringField(3)
  name = _messages.StringField(4)
  updateTime = _messages.StringField(5)


class CatalogTemplate(_messages.Message):
  r"""A template inside a catalog.

  Enums:
    TemplateCategoryValueValuesEnum: Required. The category of the Application
      Design Center application template.
    TypeValueValuesEnum: Optional. The Application Design Center application
      template type.

  Fields:
    createTime: Output only. The catalog template creation timestamp.
    description: Optional. The catalog template description.
    displayName: Optional. The display name of a catalog template.
    latestRevisionId: Output only. Latest revision of the template.
    name: Identifier. The catalog template name in following format: `projects
      /$project/locations/$location/spaces/$space/catalogs/$catalog/templates/
      $template`
    templateCategory: Required. The category of the Application Design Center
      application template.
    type: Optional. The Application Design Center application template type.
    updateTime: Output only. The catalog template update timestamp.
    uuid: Output only. The template revisions UUID.
  """

  class TemplateCategoryValueValuesEnum(_messages.Enum):
    r"""Required. The category of the Application Design Center application
    template.

    Values:
      TEMPLATE_CATEGORY_UNSPECIFIED: Unspecified category.
      COMPONENT_TEMPLATE: Component template.
      APPLICATION_TEMPLATE: Application template.
      COMPOSITE_SOLUTION_TEMPLATE: Imported as a single, complex unit without
        disassembling into components.
      INSTANCE_TEMPLATE: Instance template.
    """
    TEMPLATE_CATEGORY_UNSPECIFIED = 0
    COMPONENT_TEMPLATE = 1
    APPLICATION_TEMPLATE = 2
    COMPOSITE_SOLUTION_TEMPLATE = 3
    INSTANCE_TEMPLATE = 4

  class TypeValueValuesEnum(_messages.Enum):
    r"""Optional. The Application Design Center application template type.

    Values:
      TEMPLATE_TYPE_UNSPECIFIED: Default.
      SERVICE: A service template is an App Hub service.
      WORKLOAD: A workload template is an App Hub workload.
      ASSET: An asset template can be used to provision resources that are not
        services or workloads.
      APPLICATION: An application template is a composition of
        workload/service/asset templates.
      JSS_SOLUTION: A Jumpstart Solution template.
      SERVICE_DATA_SOURCE: A service data source template.
      HELM_APPLICATION: A helm chart based template.
      STANDARD_APPLICATION_TEMPLATE: A standard application template.
      COMPOSITE_APPLICATION_TEMPLATE: A composite application template.
      HELM_CHART: A helm chart based template.
    """
    TEMPLATE_TYPE_UNSPECIFIED = 0
    SERVICE = 1
    WORKLOAD = 2
    ASSET = 3
    APPLICATION = 4
    JSS_SOLUTION = 5
    SERVICE_DATA_SOURCE = 6
    HELM_APPLICATION = 7
    STANDARD_APPLICATION_TEMPLATE = 8
    COMPOSITE_APPLICATION_TEMPLATE = 9
    HELM_CHART = 10

  createTime = _messages.StringField(1)
  description = _messages.StringField(2)
  displayName = _messages.StringField(3)
  latestRevisionId = _messages.StringField(4)
  name = _messages.StringField(5)
  templateCategory = _messages.EnumField('TemplateCategoryValueValuesEnum', 6)
  type = _messages.EnumField('TypeValueValuesEnum', 7)
  updateTime = _messages.StringField(8)
  uuid = _messages.StringField(9)


class CatalogTemplateRevision(_messages.Message):
  r"""Template revisions inside a catalog.

  Enums:
    StateValueValuesEnum: Output only. The template state
      (validating/ready/invalid).
    TemplateCategoryValueValuesEnum: Output only. The category of the
      template.
    TypeValueValuesEnum: Optional. The Application Design Center application
      template type.

  Messages:
    AnnotationsValue: Optional. The annotations of the template revision. Key
      is the annotation name. Value is the annotation value.

  Fields:
    annotations: Optional. The annotations of the template revision. Key is
      the annotation name. Value is the annotation value.
    applicationTemplateRevision: Output only. The application template
      revision.
    applicationTemplateRevisionSource: Optional. The application template
      revision source.
    createTime: Output only. The catalog template creation timestamp.
    description: Optional. The catalog template revision description.
    developerConnectSourceConfig: Optional. Configuration for fetching content
      from source code repository such as GitHub or Bitbucket through
      Developer Connect.
    gcsSourceUri: Optional. Deprecated: Added new field tf_module_gcs_uri. The
      Cloud Storage URI, which must be in the format gs://[bucket] or
      gs://[bucket]/[object].
    gitSource: Optional. The git source.
    helmChartMetadata: Output only. The helm chart metadata.
    inferredMetadata: Output only. Metadata that was automatically inferred
      from the template content. This field can be updated by the system as it
      gets new information.
    logicalProducts: Output only. The Product Main logical product type
      information.
    metadataInput: Optional. Metadata input.
    name: Identifier. The catalog template revision name. `projects/$project/l
      ocations/$location/spaces/$space/catalogs/$catalog/templates/$template/r
      evisions/$revision`
    ociRepo: Optional. The Open Container Initiative (OCI) repo source that
      contains helm charts.
    resourceTypes: Output only. The resource types present in the template
      revision.
    state: Output only. The template state (validating/ready/invalid).
    templateCategory: Output only. The category of the template.
    templateMetadata: Output only. Template metadata related to Terraform
      input and output.
    type: Optional. The Application Design Center application template type.
    updateTime: Output only. The catalog template update timestamp.
    uuid: Output only. UUID of the template revision.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. The template state (validating/ready/invalid).

    Values:
      STATE_UNSPECIFIED: Default.
      VALIDATING: The template is being validated.
      ACTIVE: The template is ready to be used.
      INVALID: The template is invalid.
    """
    STATE_UNSPECIFIED = 0
    VALIDATING = 1
    ACTIVE = 2
    INVALID = 3

  class TemplateCategoryValueValuesEnum(_messages.Enum):
    r"""Output only. The category of the template.

    Values:
      TEMPLATE_CATEGORY_UNSPECIFIED: Unspecified category.
      COMPONENT_TEMPLATE: Component template.
      APPLICATION_TEMPLATE: Application template.
      COMPOSITE_SOLUTION_TEMPLATE: Imported as a single, complex unit without
        disassembling into components.
      INSTANCE_TEMPLATE: Instance template.
    """
    TEMPLATE_CATEGORY_UNSPECIFIED = 0
    COMPONENT_TEMPLATE = 1
    APPLICATION_TEMPLATE = 2
    COMPOSITE_SOLUTION_TEMPLATE = 3
    INSTANCE_TEMPLATE = 4

  class TypeValueValuesEnum(_messages.Enum):
    r"""Optional. The Application Design Center application template type.

    Values:
      TEMPLATE_TYPE_UNSPECIFIED: Default.
      SERVICE: A service template is an App Hub service.
      WORKLOAD: A workload template is an App Hub workload.
      ASSET: An asset template can be used to provision resources that are not
        services or workloads.
      APPLICATION: An application template is a composition of
        workload/service/asset templates.
      JSS_SOLUTION: A Jumpstart Solution template.
      SERVICE_DATA_SOURCE: A service data source template.
      HELM_APPLICATION: A helm chart based template.
      STANDARD_APPLICATION_TEMPLATE: A standard application template.
      COMPOSITE_APPLICATION_TEMPLATE: A composite application template.
      HELM_CHART: A helm chart based template.
    """
    TEMPLATE_TYPE_UNSPECIFIED = 0
    SERVICE = 1
    WORKLOAD = 2
    ASSET = 3
    APPLICATION = 4
    JSS_SOLUTION = 5
    SERVICE_DATA_SOURCE = 6
    HELM_APPLICATION = 7
    STANDARD_APPLICATION_TEMPLATE = 8
    COMPOSITE_APPLICATION_TEMPLATE = 9
    HELM_CHART = 10

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AnnotationsValue(_messages.Message):
    r"""Optional. The annotations of the template revision. Key is the
    annotation name. Value is the annotation value.

    Messages:
      AdditionalProperty: An additional property for a AnnotationsValue
        object.

    Fields:
      additionalProperties: Additional properties of type AnnotationsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AnnotationsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  annotations = _messages.MessageField('AnnotationsValue', 1)
  applicationTemplateRevision = _messages.MessageField('SerializedApplicationTemplate', 2)
  applicationTemplateRevisionSource = _messages.StringField(3)
  createTime = _messages.StringField(4)
  description = _messages.StringField(5)
  developerConnectSourceConfig = _messages.MessageField('DeveloperConnectSourceConfig', 6)
  gcsSourceUri = _messages.StringField(7)
  gitSource = _messages.MessageField('GitSource', 8)
  helmChartMetadata = _messages.MessageField('HelmChartMetadata', 9)
  inferredMetadata = _messages.MessageField('InferredMetadata', 10)
  logicalProducts = _messages.MessageField('LogicalProduct', 11, repeated=True)
  metadataInput = _messages.MessageField('MetadataInput', 12)
  name = _messages.StringField(13)
  ociRepo = _messages.MessageField('OciRepo', 14)
  resourceTypes = _messages.MessageField('ResourceType', 15, repeated=True)
  state = _messages.EnumField('StateValueValuesEnum', 16)
  templateCategory = _messages.EnumField('TemplateCategoryValueValuesEnum', 17)
  templateMetadata = _messages.MessageField('TFBlueprintMetadata', 18)
  type = _messages.EnumField('TypeValueValuesEnum', 19)
  updateTime = _messages.StringField(20)
  uuid = _messages.StringField(21)


class Channel(_messages.Message):
  r"""Separate message to accommodate custom formats across IRC and Slack.

  Fields:
    uri: Required. URI of the channel.
  """

  uri = _messages.StringField(1)


class CloudControl(_messages.Message):
  r"""Cloud control for a framework.

  Enums:
    EnforcementModeValueValuesEnum: Optional. The enforcement mode of the
      cloud control.

  Fields:
    description: Optional. The description of the cloud control.
    enforcementMode: Optional. The enforcement mode of the cloud control.
    majorRevisionId: Required. The major revision id of the cloud control.
    name: Required. The name of the cloud control.
  """

  class EnforcementModeValueValuesEnum(_messages.Enum):
    r"""Optional. The enforcement mode of the cloud control.

    Values:
      ENFORCEMENT_MODE_UNSPECIFIED: Enforcement type unspecified.
      PREVENTIVE: The cloud control is enforced to prevent non-compliance.
      DETECTIVE: The cloud control is enforced to detect non-compliance.
      AUDIT: The cloud control is enforced to audit for non-compliance.
    """
    ENFORCEMENT_MODE_UNSPECIFIED = 0
    PREVENTIVE = 1
    DETECTIVE = 2
    AUDIT = 3

  description = _messages.StringField(1)
  enforcementMode = _messages.EnumField('EnforcementModeValueValuesEnum', 2)
  majorRevisionId = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  name = _messages.StringField(4)


class CodePosition(_messages.Message):
  r"""CodePosition represents a code location.

  Fields:
    byteOffset: Output only. Byte offset in the content.
    column: Output only. One-based column count of the relevant position.
    line: Output only. One-based line count of the relevant position.
  """

  byteOffset = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  column = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  line = _messages.IntegerField(3, variant=_messages.Variant.INT32)


class CodeRange(_messages.Message):
  r"""CodeRange represents a portion of code.

  Fields:
    end: Output only. End position.
    start: Output only. Start position.
  """

  end = _messages.MessageField('CodePosition', 1)
  start = _messages.MessageField('CodePosition', 2)


class CommitApplicationTemplateRequest(_messages.Message):
  r"""Request message for CommitApplicationTemplate method."""


class Component(_messages.Message):
  r"""Component resource.

  Fields:
    apis: Output only. APIs required to be enabled to deploy the component, in
      the form of "*.googleapis.com".
    applicationInfo: Optional. The application associated with the component.
    componentParameterSchema: Output only. The component parameter schema,
      which includes possible parameter values. values.
    connectionsParameters: Output only. The connection parameters of the
      component.
    createTime: Output only. The component creation timestamp.
    displayName: Optional. The component display name.
    name: Identifier. The component name.
    parameters: Optional. The component parameters.
    roles: Output only. IAM roles required by the service account to deploy
      the component.
    sharedTemplateRevisionUri: Required. Immutable. The shared template used
      to generate the component.
    updateTime: Output only. The component update timestamp.
    useAsRootModule: Optional. Whether the component is exported as a separate
      terraform root module in a composite application template. If this is
      false, then native components will be exported as a submodule of a
      separate terraform root module.
  """

  apis = _messages.StringField(1, repeated=True)
  applicationInfo = _messages.MessageField('ComponentApplicationInfo', 2)
  componentParameterSchema = _messages.MessageField('ComponentParameterSchema', 3, repeated=True)
  connectionsParameters = _messages.MessageField('ConnectionParameters', 4, repeated=True)
  createTime = _messages.StringField(5)
  displayName = _messages.StringField(6)
  name = _messages.StringField(7)
  parameters = _messages.MessageField('Parameter', 8, repeated=True)
  roles = _messages.StringField(9, repeated=True)
  sharedTemplateRevisionUri = _messages.StringField(10)
  updateTime = _messages.StringField(11)
  useAsRootModule = _messages.BooleanField(12)


class ComponentApplicationInfo(_messages.Message):
  r"""This captures the apphub application details associated with the
  component.

  Fields:
    apphubApplicationId: Required. The application ID of the apphub
      application. The ID must be 1-63 characters long and should match the
      regular expression `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
    attributes: Optional. Attributes of apphub application.
    deploymentRegion: Optional. Deployment region for the component. If the
      scope is set to REGIONAL, then the apphub application is created in this
      region, e.g. `us-central1`.
    displayName: Optional. Display name for the application. The number of
      characters should be less than 64 characters.
    scope: Optional. Scope of apphub application.
  """

  apphubApplicationId = _messages.StringField(1)
  attributes = _messages.MessageField('Attributes', 2)
  deploymentRegion = _messages.StringField(3)
  displayName = _messages.StringField(4)
  scope = _messages.MessageField('Scope', 5)


class ComponentOutputParameters(_messages.Message):
  r"""The component output parameters of the deployment.

  Fields:
    component: Output only. The component name of the output parameters.
    parameters: Output only. The output parameters of the component.
  """

  component = _messages.StringField(1)
  parameters = _messages.MessageField('Parameter', 2, repeated=True)


class ComponentParameterSchema(_messages.Message):
  r"""Component parameter schema, which contains a list of all component
  parameters.

  Fields:
    defaultValue: Output only. The default value of the parameter.
    isRequired: Output only. Whether the parameter is required.
    key: Output only. The key of the parameter.
    type: Output only. The type of the parameter.
  """

  defaultValue = _messages.MessageField('extra_types.JsonValue', 1)
  isRequired = _messages.BooleanField(2)
  key = _messages.StringField(3)
  type = _messages.StringField(4)


class ComponentParameters(_messages.Message):
  r"""Information about the component level parameters for an application.

  Enums:
    StateValueValuesEnum: Output only. Deployment state of the component.

  Fields:
    applicationInfo: Optional. The application associated with the component.
    component: Required. The name of the component parameter.
    componentParameterSchema: Output only. The component parameter schema,
      which includes possible parameter values.
    connectionsParameters: Output only. A list of connections associated with
      the component.
    effectiveApplicationInfo: Output only. The effective application
      associated with the component. This is the server set application field.
    parameters: Optional. A list of parameters associated with the component.
    state: Output only. Deployment state of the component.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. Deployment state of the component.

    Values:
      STATE_UNSPECIFIED: Unspecified component deployment state.
      DRAFT: Component is in draft.
      CREATING_DEPLOYMENT: New deployment is in progress.
      UPDATING_DEPLOYMENT: Update is in progress.
      DELETING: Deletion is in progress.
      DEPLOYED: Component deployment is completed.
      DELETED: Component deployment is deleted.
      FAILED: Component deployment is failed.
    """
    STATE_UNSPECIFIED = 0
    DRAFT = 1
    CREATING_DEPLOYMENT = 2
    UPDATING_DEPLOYMENT = 3
    DELETING = 4
    DEPLOYED = 5
    DELETED = 6
    FAILED = 7

  applicationInfo = _messages.MessageField('ComponentApplicationInfo', 1)
  component = _messages.StringField(2)
  componentParameterSchema = _messages.MessageField('ComponentParameterSchema', 3, repeated=True)
  connectionsParameters = _messages.MessageField('ConnectionParameters', 4, repeated=True)
  effectiveApplicationInfo = _messages.MessageField('ComponentApplicationInfo', 5)
  parameters = _messages.MessageField('Parameter', 6, repeated=True)
  state = _messages.EnumField('StateValueValuesEnum', 7)


class ComponentVariable(_messages.Message):
  r"""The details of an input/output variable: the variable and the component
  Uri. name.

  Fields:
    componentUri: Required. Component to which this variable belongs.
    variable: Required. Name of the variable.
  """

  componentUri = _messages.StringField(1)
  variable = _messages.StringField(2)


class CompositeApplicationParameters(_messages.Message):
  r"""Holds parameters that are specific to composite applications.

  Messages:
    ProjectParametersMapValue: Output only. A map from a component's URI to
      its project parameters. The key format is: projects/{project}/locations/
      {location}/spaces/{space}/applicationTemplates/{application_template}/co
      mponents/{component}
    ServiceAccountMapValue: Optional. A map from a component's URI to the
      deployment service account for composite application. key format: projec
      ts/{project}/locations/{location}/spaces/{space}/applicationTemplates/{a
      pplication_template}/components/{component} value format:
      projects/{project}/serviceAccounts/{email_address}

  Fields:
    projectParametersMap: Output only. A map from a component's URI to its
      project parameters. The key format is: projects/{project}/locations/{loc
      ation}/spaces/{space}/applicationTemplates/{application_template}/compon
      ents/{component}
    serviceAccountMap: Optional. A map from a component's URI to the
      deployment service account for composite application. key format: projec
      ts/{project}/locations/{location}/spaces/{space}/applicationTemplates/{a
      pplication_template}/components/{component} value format:
      projects/{project}/serviceAccounts/{email_address}
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ProjectParametersMapValue(_messages.Message):
    r"""Output only. A map from a component's URI to its project parameters.
    The key format is: projects/{project}/locations/{location}/spaces/{space}/
    applicationTemplates/{application_template}/components/{component}

    Messages:
      AdditionalProperty: An additional property for a
        ProjectParametersMapValue object.

    Fields:
      additionalProperties: Additional properties of type
        ProjectParametersMapValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ProjectParametersMapValue object.

      Fields:
        key: Name of the additional property.
        value: A ProjectParametersList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('ProjectParametersList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ServiceAccountMapValue(_messages.Message):
    r"""Optional. A map from a component's URI to the deployment service
    account for composite application. key format: projects/{project}/location
    s/{location}/spaces/{space}/applicationTemplates/{application_template}/co
    mponents/{component} value format:
    projects/{project}/serviceAccounts/{email_address}

    Messages:
      AdditionalProperty: An additional property for a ServiceAccountMapValue
        object.

    Fields:
      additionalProperties: Additional properties of type
        ServiceAccountMapValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ServiceAccountMapValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  projectParametersMap = _messages.MessageField('ProjectParametersMapValue', 1)
  serviceAccountMap = _messages.MessageField('ServiceAccountMapValue', 2)


class Connection(_messages.Message):
  r"""Connection resource.

  Fields:
    createTime: Output only. The connection creation timestamp.
    destinationComponentParameters: Optional. The parameters of the connection
      associated with the destination component.
    destinationComponentUri: Required. The destination component URI used to
      generate the connection. Format is `projects/$project/locations/$locatio
      n/spaces/$space/applicationTemplates/$application_template/components/$c
      omponent`
    name: Identifier. The connection name.
    sourceComponentParameters: Optional. The parameters of the connection
      associated with the source component.
    updateTime: Output only. The connection update timestamp.
  """

  createTime = _messages.StringField(1)
  destinationComponentParameters = _messages.MessageField('Parameter', 2, repeated=True)
  destinationComponentUri = _messages.StringField(3)
  name = _messages.StringField(4)
  sourceComponentParameters = _messages.MessageField('Parameter', 5, repeated=True)
  updateTime = _messages.StringField(6)


class ConnectionConfig(_messages.Message):
  r"""Connection configuration for the application.

  Fields:
    connectionUri: Required. The connection URI.
    destinationComponentParameters: Optional. The parameters of the connection
      associated with the destination component.
    sourceComponentParameters: Optional. The parameters of the connection
      associated with the source component.
  """

  connectionUri = _messages.StringField(1)
  destinationComponentParameters = _messages.MessageField('Parameter', 2, repeated=True)
  sourceComponentParameters = _messages.MessageField('Parameter', 3, repeated=True)


class ConnectionParameters(_messages.Message):
  r"""Connection level parameters associated with each component within an
  application.

  Fields:
    connection: Required. The name of the connection parameter.
    parameters: Optional. A list of parameters associated with the connection.
  """

  connection = _messages.StringField(1)
  parameters = _messages.MessageField('Parameter', 2, repeated=True)


class ConnectionSource(_messages.Message):
  r"""Defines the source of a connection.

  Fields:
    source: Required. Source of the connection. Defined using the same format
      as module source of form [hostname]/namespace/name/provider for registry
      references and unprefixed github.com URLs for github references.
    version: Required. Version constraint syntax using the same format as
      module version constraints.
  """

  source = _messages.StringField(1)
  version = _messages.StringField(2)


class ConnectionSpec(_messages.Message):
  r"""Defines the specifications of a connection.

  Fields:
    inputPath: Optional. Optional dot separated attribuite notation to connect
      to a specific object field of the input variable.
    outputExpr: Required. Output expression identifying output being connected
      to variable.
  """

  inputPath = _messages.StringField(1)
  outputExpr = _messages.StringField(2)


class ContactInfo(_messages.Message):
  r"""Contact information of stakeholders.

  Fields:
    channel: Optional. Communication channel of the contacts.
    displayName: Optional. Contact's name. Can have a maximum length of 63
      characters.
    email: Required. Email address of the contacts.
  """

  channel = _messages.MessageField('Channel', 1)
  displayName = _messages.StringField(2)
  email = _messages.StringField(3)


class Criticality(_messages.Message):
  r"""Criticality of the Application, Service, or Workload

  Enums:
    TypeValueValuesEnum: Required. Criticality Type.

  Fields:
    level: Optional. Criticality level. Can contain only lowercase letters,
      numeric characters, underscores, and dashes. Can have a maximum length
      of 63 characters. Deprecated: Please refer to type instead.
    missionCritical: Optional. Indicates mission-critical Application,
      Service, or Workload. Deprecated: Please refer to type instead.
    type: Required. Criticality Type.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Required. Criticality Type.

    Values:
      TYPE_UNSPECIFIED: Unspecified type.
      MISSION_CRITICAL: Mission critical service, application or workload.
      HIGH: High impact.
      MEDIUM: Medium impact.
      LOW: Low impact.
    """
    TYPE_UNSPECIFIED = 0
    MISSION_CRITICAL = 1
    HIGH = 2
    MEDIUM = 3
    LOW = 4

  level = _messages.StringField(1)
  missionCritical = _messages.BooleanField(2)
  type = _messages.EnumField('TypeValueValuesEnum', 3)


class DeployApplicationRequest(_messages.Message):
  r"""Message for deploying an application.

  Fields:
    replace: Optional. Flag to update the existing deployment. If not set or
      false, deploy will fail if application `state` is in the `DEPLOYED`
      state.
    serviceAccount: Optional. The email address of the service account to use
      for this deployment. - If provided, this service account will be used to
      execute the deployment process, taking precedence over any
      service_account specified on the Application resource. - The caller must
      have the 'iam.serviceAccounts.actAs' permission on this service account.
      - If this field is omitted, the system will use the 'service_account'
      defined within the Application resource. - We recommend that you provide
      a service account here or on the Application resource. If you don't
      provide a service account, the deployment will fail. Format:
      projects/{PROJECT}/serviceAccounts/{EMAIL_ADDRESS}
    validateOnly: Optional. If set to true, the request is validated, but no
      actual deployment will occur. See https://google.aip.dev/163 for more
      details.
    workerPool: Optional. The user-specified Worker Pool resource in which the
      Cloud Build job will execute. Format:
      projects/{project}/locations/{location}/workerPools/{workerPoolId} If
      this flag is omitted, the worker pool already defined on the application
      will be used. If no worker pool is defined on the application, the
      default Cloud Build worker pool is used. The worker pool must exist in
      the same region as the application.
  """

  replace = _messages.BooleanField(1)
  serviceAccount = _messages.StringField(2)
  validateOnly = _messages.BooleanField(3)
  workerPool = _messages.StringField(4)


class DeploymentAttemptMetadata(_messages.Message):
  r"""DeploymentAttemptMetadata represents a previous deployment attempt for
  an operation that failed due to a retryable error.

  Fields:
    attempt: The sequential number of the attempt (starting from 1).
    build: The build or execution ID associated with this specific attempt.
      This can be used to link back to logs or trace information.
    errorDetail: Human readable string that summarizes the deployment error
      issue.
  """

  attempt = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  build = _messages.StringField(2)
  errorDetail = _messages.StringField(3)


class DeploymentError(_messages.Message):
  r"""The error associated with the deployment.

  Enums:
    CodeValueValuesEnum: Output only. The deployment error code. Based on
      Infrastructure Manager error codes.
    TypeValueValuesEnum: Output only. The error type based on the deployment
      error code.

  Fields:
    code: Output only. The deployment error code. Based on Infrastructure
      Manager error codes.
    deploymentFailureResolutionInfo: Output only. The call to actions
      associated with the deployment issue.
    detail: Output only. Human readable string that summarizes the deployment
      error issue.
    errorMessage: Output only. Stores errors generated by Infra Manager, as
      well as all non-internal errors (such as INVALID_ARGUMENT) that occur
      before initiating the deployment.
    tfErrors: Output only. The error message associated with the deployment.
    type: Output only. The error type based on the deployment error code.
  """

  class CodeValueValuesEnum(_messages.Enum):
    r"""Output only. The deployment error code. Based on Infrastructure
    Manager error codes.

    Values:
      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.
      EXTERNAL_VALUE_SOURCE_IMPORT_FAILED: Failed to import values from an
        external source.
    """
    ERROR_CODE_UNSPECIFIED = 0
    REVISION_FAILED = 1
    CLOUD_BUILD_PERMISSION_DENIED = 2
    DELETE_BUILD_API_FAILED = 3
    DELETE_BUILD_RUN_FAILED = 4
    BUCKET_CREATION_PERMISSION_DENIED = 5
    BUCKET_CREATION_FAILED = 6
    EXTERNAL_VALUE_SOURCE_IMPORT_FAILED = 7

  class TypeValueValuesEnum(_messages.Enum):
    r"""Output only. The error type based on the deployment error code.

    Values:
      ERROR_TYPE_UNSPECIFIED: Unspecified error type.
      PERMISSION: Permission related error.
      QUOTA: Quota related error.
      ALREADY_EXISTS: Resource already exists.
      RESOURCE_UNAVAILABLE: Resource is unavailable.
      BILLING: Billing related error.
      GENERIC: Generic error if error does not fall under any of the above.
      TERRAFORM: Terraform related error.
      BAD_INPUT: Bad input error.
      PLATFORM: Platform related error.
      API_ENABLEMENT: API enablement error.
      BAD_REQUEST: Bad request error.
    """
    ERROR_TYPE_UNSPECIFIED = 0
    PERMISSION = 1
    QUOTA = 2
    ALREADY_EXISTS = 3
    RESOURCE_UNAVAILABLE = 4
    BILLING = 5
    GENERIC = 6
    TERRAFORM = 7
    BAD_INPUT = 8
    PLATFORM = 9
    API_ENABLEMENT = 10
    BAD_REQUEST = 11

  code = _messages.EnumField('CodeValueValuesEnum', 1)
  deploymentFailureResolutionInfo = _messages.MessageField('DeploymentFailureResolutionInfo', 2, repeated=True)
  detail = _messages.StringField(3)
  errorMessage = _messages.StringField(4)
  tfErrors = _messages.MessageField('TerraformError', 5, repeated=True)
  type = _messages.EnumField('TypeValueValuesEnum', 6)


class DeploymentFailureResolutionInfo(_messages.Message):
  r"""The call to action associated with the deployment issue.

  Fields:
    resolutionLink: Output only. Link for the call to action.
    resolutionLinkText: Output only. Call to action link text.
    resolutionMessage: Output only. Elaborative error resolution message.
  """

  resolutionLink = _messages.StringField(1)
  resolutionLinkText = _messages.StringField(2)
  resolutionMessage = _messages.StringField(3)


class DeploymentGroupMetadata(_messages.Message):
  r"""Metadata for the infra manager deployment group. A deployment group in
  Infrastructure Manager is a logical grouping of one or more deployments.

  Messages:
    DeploymentMetadataMapValue: Output only. Map of component name to
      deployment metadata for the component. Key format: projects/{project}/lo
      cations/{location}/spaces/{space}/applicationTemplates/{application_temp
      late}/components/{component}

  Fields:
    deploymentGroup: Output only. The deployment group name. Format:
      projects/{project}/locations/{location}/deploymentGroup/{deployment_grou
      p}
    deploymentMetadataMap: Output only. Map of component name to deployment
      metadata for the component. Key format: projects/{project}/locations/{lo
      cation}/spaces/{space}/applicationTemplates/{application_template}/compo
      nents/{component}
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DeploymentMetadataMapValue(_messages.Message):
    r"""Output only. Map of component name to deployment metadata for the
    component. Key format: projects/{project}/locations/{location}/spaces/{spa
    ce}/applicationTemplates/{application_template}/components/{component}

    Messages:
      AdditionalProperty: An additional property for a
        DeploymentMetadataMapValue object.

    Fields:
      additionalProperties: Additional properties of type
        DeploymentMetadataMapValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DeploymentMetadataMapValue object.

      Fields:
        key: Name of the additional property.
        value: A DeploymentMetadata attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('DeploymentMetadata', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  deploymentGroup = _messages.StringField(1)
  deploymentMetadataMap = _messages.MessageField('DeploymentMetadataMapValue', 2)


class DeploymentMetadata(_messages.Message):
  r"""Deployment information for the application.

  Fields:
    applicationOutputParameters: Output only. The application output
      parameters of the deployment.
    build: Output only. Cloud Build instance UUID associated with this
      deployment.
    componentOutputParameters: Output only. The component output parameters of
      the deployment.
    error: Output only. The error associated with the deployment.
    retryAttempts: Output only. The attempted number of deployment retries.
    revision: Output only. The revision of the deployment associated with the
      Application.
    workerPool: Output only. The user-specified Cloud Build worker pool
      resource used, which the system uses to deploy the application. Format:
      `projects/{project}/locations/{location}/workerPools/{workerPoolId}`.
  """

  applicationOutputParameters = _messages.MessageField('ApplicationOutputParameters', 1)
  build = _messages.StringField(2)
  componentOutputParameters = _messages.MessageField('ComponentOutputParameters', 3, repeated=True)
  error = _messages.MessageField('DeploymentError', 4)
  retryAttempts = _messages.IntegerField(5, variant=_messages.Variant.INT32)
  revision = _messages.StringField(6)
  workerPool = _messages.StringField(7)


class DeploymentOperationMetadata(_messages.Message):
  r"""Ephemeral metadata depicting the state of the deployment operation.

  Fields:
    deployment: Output only. The name of the deployment associated with the
      application.
    deploymentBuild: Output only. Cloud Build instance UUID associated with
      this deployment.
    deploymentLogs: Output only. Location of the deployment operation logs in
      `gs://{bucket}/{object}` format.
    deploymentStep: Output only. The current step of the deployment. This will
      mimic the DeploymentStep enum in the deployment proto.
    previousAttempt: Previous deployment attempt metadata.
    resources: Details of the Resourcess in the deployment.
  """

  deployment = _messages.StringField(1)
  deploymentBuild = _messages.StringField(2)
  deploymentLogs = _messages.StringField(3)
  deploymentStep = _messages.StringField(4)
  previousAttempt = _messages.MessageField('DeploymentAttemptMetadata', 5)
  resources = _messages.MessageField('Resource', 6, repeated=True)


class DeploymentSource(_messages.Message):
  r"""Source template information for the deployment.

  Fields:
    applicationTemplateRevision: Application template revision URI.
    sharedTemplateRevisionUri: Shared template revision URI.
  """

  applicationTemplateRevision = _messages.StringField(1)
  sharedTemplateRevisionUri = _messages.StringField(2)


class DeploymentTarget(_messages.Message):
  r"""The deployment target of the application.

  Fields:
    gkeDeploymentTarget: Optional. The GKE deployment target.
  """

  gkeDeploymentTarget = _messages.MessageField('GKEDeploymentTarget', 1)


class DeploymentUnitProgress(_messages.Message):
  r"""Single deployment unit progress info

  Fields:
    deployment: Output only. Deployment resource of deploying unit ID
    deploymentBuild: Output only. Deployment build uuid
    deploymentStep: Output only. Current deployment step
    deploymentUnitStep: Output only. Current deployment unit step
    unitId: Output only. Deployment unit ID
  """

  deployment = _messages.StringField(1)
  deploymentBuild = _messages.StringField(2)
  deploymentStep = _messages.StringField(3)
  deploymentUnitStep = _messages.StringField(4)
  unitId = _messages.StringField(5)


class DesignCenterPolicy(_messages.Message):
  r"""A Policy is a resource within an Application Template that refers to a
  Policy that you author outside of Application Design Center and attach to an
  application template.

  Enums:
    PolicyTypeValueValuesEnum: Required. The policy type. Policy type is used
      to determine the domain of the policy.

  Fields:
    applyConditions: Optional. Conditions for applying the policy. Condition
      accepts the `criticality` and `environment` parameters from the
      application template.
    createTime: Output only. The policy creation timestamp.
    description: Optional. The policy description.
    displayName: Optional. The policy display name.
    name: Identifier. The policy name in the following format: `projects/$proj
      ect/locations/$location/spaces/$space/applicationTemplates/$applicationT
      emplate/policies/$policy`
    policyRevisionUri: Optional. URI of the policy revision.
    policyType: Required. The policy type. Policy type is used to determine
      the domain of the policy.
    policyUri: Optional. URI of the policy.
    updateTime: Output only. The policy update timestamp.
  """

  class PolicyTypeValueValuesEnum(_messages.Enum):
    r"""Required. The policy type. Policy type is used to determine the domain
    of the policy.

    Values:
      POLICY_TYPE_UNSPECIFIED: Default.
      COMPLIANCE_FRAMEWORK: Compliance framework policy.
    """
    POLICY_TYPE_UNSPECIFIED = 0
    COMPLIANCE_FRAMEWORK = 1

  applyConditions = _messages.MessageField('ApplyCondition', 1, repeated=True)
  createTime = _messages.StringField(2)
  description = _messages.StringField(3)
  displayName = _messages.StringField(4)
  name = _messages.StringField(5)
  policyRevisionUri = _messages.StringField(6)
  policyType = _messages.EnumField('PolicyTypeValueValuesEnum', 7)
  policyUri = _messages.StringField(8)
  updateTime = _messages.StringField(9)


class DesigncenterProjectsLocationsFetchFrameworksRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsFetchFrameworksRequest object.

  Fields:
    filter: Optional. Filter for frameworks list.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource name. Format:
      projects/{project}/locations/{location}
    projects: Optional. Projects to fetch frameworks for. Format:
      projects/{project}
  """

  filter = _messages.StringField(1)
  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)
  projects = _messages.StringField(5, repeated=True)


class DesigncenterProjectsLocationsGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsGetRequest object.

  Fields:
    name: Resource name for the location.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsListRequest object.

  Fields:
    extraLocationTypes: Optional. Do not use this field unless explicitly
      documented otherwise. This is primarily for internal usage.
    filter: A filter to narrow down results to a preferred subset. The
      filtering language accepts strings like `"displayName=tokyo"`, and is
      documented in more detail in [AIP-160](https://google.aip.dev/160).
    name: The resource that owns the locations collection, if applicable.
    pageSize: The maximum number of results to return. If not set, the service
      selects a default.
    pageToken: A page token received from the `next_page_token` field in the
      response. Send that page token to receive the subsequent page.
  """

  extraLocationTypes = _messages.StringField(1, repeated=True)
  filter = _messages.StringField(2)
  name = _messages.StringField(3, required=True)
  pageSize = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(5)


class DesigncenterProjectsLocationsOperationsCancelRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsOperationsCancelRequest object.

  Fields:
    cancelOperationRequest: A CancelOperationRequest resource to be passed as
      the request body.
    name: The name of the operation resource to be cancelled.
  """

  cancelOperationRequest = _messages.MessageField('CancelOperationRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsOperationsDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsOperationsDeleteRequest object.

  Fields:
    name: The name of the operation resource to be deleted.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsOperationsGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsOperationsGetRequest object.

  Fields:
    name: The name of the operation resource.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsOperationsListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsOperationsListRequest object.

  Fields:
    filter: The standard list filter.
    name: The name of the operation's parent resource.
    pageSize: The standard list page size.
    pageToken: The standard list page token.
    returnPartialSuccess: When set to `true`, operations that are reachable
      are returned as normal, and those that are unreachable are returned in
      the ListOperationsResponse.unreachable field. This can only be `true`
      when reading across collections. For example, when `parent` is set to
      `"projects/example/locations/-"`. This field is not supported by default
      and will result in an `UNIMPLEMENTED` error if set unless explicitly
      documented otherwise in service or product specific documentation.
  """

  filter = _messages.StringField(1)
  name = _messages.StringField(2, required=True)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  returnPartialSuccess = _messages.BooleanField(5)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesCommitRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesCommitRequest
  object.

  Fields:
    commitApplicationTemplateRequest: A CommitApplicationTemplateRequest
      resource to be passed as the request body.
    name: Required. The name of the application template.
  """

  commitApplicationTemplateRequest = _messages.MessageField('CommitApplicationTemplateRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConnectionsCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConne
  ctionsCreateRequest object.

  Fields:
    connection: A Connection resource to be passed as the request body.
    connectionId: Required. The ID of the connection to create.
    parent: Required. The parent resource in which to create a connection.
  """

  connection = _messages.MessageField('Connection', 1)
  connectionId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConnectionsDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConne
  ctionsDeleteRequest object.

  Fields:
    name: Required. The connection name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConnectionsGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConne
  ctionsGetRequest object.

  Fields:
    name: Required. Name of the resource
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConnectionsListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConne
  ctionsListRequest object.

  Fields:
    filter: Optional. A filter that chooses which connections to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource from which to request a list of
      connections.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConnectionsPatchRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsConne
  ctionsPatchRequest object.

  Fields:
    connection: A Connection resource to be passed as the request body.
    name: Identifier. The connection name.
    updateMask: Optional. Fields to overwrite in the connection 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
      you don't provide a mask, all fields are overwritten.
  """

  connection = _messages.MessageField('Connection', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsCreat
  eRequest object.

  Fields:
    component: A Component resource to be passed as the request body.
    componentId: Required. The ID of the component to create.
    parent: Required. The parent resource in which to create the component.
  """

  component = _messages.MessageField('Component', 1)
  componentId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsDelet
  eRequest object.

  Fields:
    force: Optional. If set to true, the component's children are also
      deleted. If false, the component is only deleted if it has no children.
    name: Required. The component name.
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsGetRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsGetRequest
  object.

  Fields:
    name: Required. The component name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsListRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsListRequest
  object.

  Fields:
    filter: Optional. A filter that chooses which components to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource from which the list of components is
      requested.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsPatchRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesComponentsPatch
  Request object.

  Fields:
    component: A Component resource to be passed as the request body.
    name: Identifier. The component name.
    updateMask: Optional. The fields to overwrite in the component update. If
      you don't provide a mask, all fields are overwritten.
  """

  component = _messages.MessageField('Component', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesCreateRequest
  object.

  Fields:
    applicationTemplate: A ApplicationTemplate resource to be passed as the
      request body.
    applicationTemplateId: Required. The ID of the application template to
      create.
    parent: Required. The parent resource in which to create the application
      template.
  """

  applicationTemplate = _messages.MessageField('ApplicationTemplate', 1)
  applicationTemplateId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesDeleteRequest
  object.

  Fields:
    force: Optional. If set to true, the application template's children are
      also deleted. If false, the application template is only deleted if it
      has no children.
    name: Required. The application template name.
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesExportRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesExportRequest
  object.

  Fields:
    exportApplicationTemplateIaCRequest: A ExportApplicationTemplateIaCRequest
      resource to be passed as the request body.
    name: Required. The name of the application template.
  """

  exportApplicationTemplateIaCRequest = _messages.MessageField('ExportApplicationTemplateIaCRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesGenerateAssessmentReportRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesGenerateAssessm
  entReportRequest object.

  Fields:
    generateApplicationTemplateAssessmentReportRequest: A
      GenerateApplicationTemplateAssessmentReportRequest resource to be passed
      as the request body.
    name: Required. The application template name in the following format: `pr
      ojects/$project/locations/$location/spaces/$space/applicationTemplates/$
      applicationTemplate`
  """

  generateApplicationTemplateAssessmentReportRequest = _messages.MessageField('GenerateApplicationTemplateAssessmentReportRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesGenerateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesGenerateRequest
  object.

  Fields:
    generateApplicationTemplateIaCRequest: A
      GenerateApplicationTemplateIaCRequest resource to be passed as the
      request body.
    name: Required. The name of the application template.
  """

  generateApplicationTemplateIaCRequest = _messages.MessageField('GenerateApplicationTemplateIaCRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesGetRequest
  object.

  Fields:
    name: Required. The application template name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesImportIaCRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesImportIaCRequest
  object.

  Fields:
    importApplicationTemplateIaCRequest: A ImportApplicationTemplateIaCRequest
      resource to be passed as the request body.
    name: Required. The name of the application template.
  """

  importApplicationTemplateIaCRequest = _messages.MessageField('ImportApplicationTemplateIaCRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesImportRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesImportRequest
  object.

  Fields:
    importApplicationTemplateRequest: A ImportApplicationTemplateRequest
      resource to be passed as the request body.
    name: Required. The name of the application template.
  """

  importApplicationTemplateRequest = _messages.MessageField('ImportApplicationTemplateRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesListRequest
  object.

  Fields:
    filter: Optional. A filter that chooses which shared template revisions to
      return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource from which to list application
      templates.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesPatchRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesPatchRequest
  object.

  Fields:
    applicationTemplate: A ApplicationTemplate resource to be passed as the
      request body.
    name: Identifier. Application template name.
    updateMask: Optional. The fields to overwrite in the application template
      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 you don't provide a mask, all fields are overwritten.
  """

  applicationTemplate = _messages.MessageField('ApplicationTemplate', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesCreateRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesCreateRequest
  object.

  Fields:
    designCenterPolicy: A DesignCenterPolicy resource to be passed as the
      request body.
    parent: Required. The parent resource in which to create the policy in the
      following format: `projects/$project/locations/$location/spaces/$space/a
      pplicationTemplates/$applicationTemplate`
    policyId: Required. The ID of the policy to create.
  """

  designCenterPolicy = _messages.MessageField('DesignCenterPolicy', 1)
  parent = _messages.StringField(2, required=True)
  policyId = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesDeleteRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesDeleteRequest
  object.

  Fields:
    name: Required. The policy name in the following format: `projects/$projec
      t/locations/$location/spaces/$space/applicationTemplates/$applicationTem
      plate/policies/$policy`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesGetRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesGetRequest
  object.

  Fields:
    name: Required. The policy name in the following format: `projects/$projec
      t/locations/$location/spaces/$space/applicationTemplates/$applicationTem
      plate/policies/$policy`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesListRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesListRequest
  object.

  Fields:
    filter: Optional. A filter that chooses which policies to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, retrieve the next batch of results from
      the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent application template from which policies are
      listed in the following format: `projects/$project/locations/$location/s
      paces/$space/applicationTemplates/$applicationTemplate`
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesPatchRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesPoliciesPatchRequest
  object.

  Fields:
    designCenterPolicy: A DesignCenterPolicy resource to be passed as the
      request body.
    name: Identifier. The policy name in the following format: `projects/$proj
      ect/locations/$location/spaces/$space/applicationTemplates/$applicationT
      emplate/policies/$policy`
    updateMask: Optional. The fields to overwrite in the policy 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
      you don't provide a mask, all fields are overwritten.
  """

  designCenterPolicy = _messages.MessageField('DesignCenterPolicy', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsDelete
  Request object.

  Fields:
    name: Required. The application template revision name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsExportRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsExport
  Request object.

  Fields:
    exportApplicationTemplateRevisionIaCRequest: A
      ExportApplicationTemplateRevisionIaCRequest resource to be passed as the
      request body.
    name: Required. The name of the application template revision.
  """

  exportApplicationTemplateRevisionIaCRequest = _messages.MessageField('ExportApplicationTemplateRevisionIaCRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsGenerateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsGenera
  teRequest object.

  Fields:
    generateApplicationTemplateRevisionIaCRequest: A
      GenerateApplicationTemplateRevisionIaCRequest resource to be passed as
      the request body.
    name: Required. The name of the application template revision.
  """

  generateApplicationTemplateRevisionIaCRequest = _messages.MessageField('GenerateApplicationTemplateRevisionIaCRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsGetRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsGetRequest
  object.

  Fields:
    name: Required. The application template revision name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsListRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationTemplatesRevisionsListRequest
  object.

  Fields:
    filter: Optional. A filter that chooses which application template
      revisions to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent from which to list application template
      revisions.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesSystemRevisionsGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesSystemRevisions
  GetRequest object.

  Fields:
    name: Required. The name of the ApplicationTemplateSystemRevision to
      retrieve. Format: projects/{project}/locations/{location}/spaces/{space}
      /applicationTemplates/{application_template}/systemRevisions/{system_rev
      ision}
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationTemplatesSystemRevisionsListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationTemplatesSystemRevisions
  ListRequest object.

  Fields:
    filter: Optional. A filter expression that filters system revisions listed
      in the response. See https://google.aip.dev/160 for more information on
      the grammar.
    pageSize: Optional. The maximum number of system revisions to return. The
      service may return fewer than this value. If unspecified, at most 50
      system revisions will be returned. The maximum value is 1000; values
      above 1000 will be coerced to 1000.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent Application Template from which to list the
      system revisions. Format: projects/{project}/locations/{location}/spaces
      /{space}/applicationTemplates/{application_template}
  """

  filter = _messages.StringField(1)
  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsCreateRequest object.

  Fields:
    application: A Application resource to be passed as the request body.
    applicationId: Required. The ID of the application to create.
    parent: Required. The parent resource in which to create the application.
      Format: `projects/$project/locations/$location/spaces/$space`
  """

  application = _messages.MessageField('Application', 1)
  applicationId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsDeleteRequest object.

  Fields:
    force: Optional. If set to true, the application's children are also
      deleted. If false, the application is only deleted if it has no
      children.
    name: Required. The application name. Format: `projects/$project/locations
      /$location/spaces/$space/applications/$application`
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsDeployRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsDeployRequest object.

  Fields:
    deployApplicationRequest: A DeployApplicationRequest resource to be passed
      as the request body.
    name: Required. The application name. Format: `projects/$project/locations
      /$location/spaces/$space/applications/$application`
  """

  deployApplicationRequest = _messages.MessageField('DeployApplicationRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsFetchAssessmentReportRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesApplicationsFetchAssessmentReportRequest
  object.

  Fields:
    name: Required. The application name in the following format: `projects/$p
      roject/locations/$location/spaces/$space/applications/$application`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsGenerateAssessmentReportRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsGenerateAssessmentRepor
  tRequest object.

  Fields:
    generateApplicationAssessmentReportRequest: A
      GenerateApplicationAssessmentReportRequest resource to be passed as the
      request body.
    name: Required. The application name in the following format: `projects/$p
      roject/locations/$location/spaces/$space/applications/$application`
  """

  generateApplicationAssessmentReportRequest = _messages.MessageField('GenerateApplicationAssessmentReportRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsGenerateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsGenerateRequest object.

  Fields:
    generateApplicationIaCRequest: A GenerateApplicationIaCRequest resource to
      be passed as the request body.
    name: Required. The name of the application.
  """

  generateApplicationIaCRequest = _messages.MessageField('GenerateApplicationIaCRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsGetRequest object.

  Fields:
    name: Required. The application name. Format: `projects/$project/locations
      /$location/spaces/$space/applications/$application`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsImportIaCRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsImportIaCRequest
  object.

  Fields:
    importApplicationIaCRequest: A ImportApplicationIaCRequest resource to be
      passed as the request body.
    name: Required. The name of the application.
  """

  importApplicationIaCRequest = _messages.MessageField('ImportApplicationIaCRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsListRequest object.

  Fields:
    filter: Optional. A filter that chooses which applications to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource from which to request a list of
      applications.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesApplicationsPatchRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsPatchRequest object.

  Fields:
    application: A Application resource to be passed as the request body.
    name: Identifier. The name of the application. Format: projects/{project}/
      locations/{location}/spaces/{space}/applications/{application}
    updateMask: Optional. The fields to overwrite in the application update.
      If you don't provide a mask, all fields are overwritten.
  """

  application = _messages.MessageField('Application', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesApplicationsPreviewRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesApplicationsPreviewRequest object.

  Fields:
    name: Required. The application name in the following format: `projects/$p
      roject/locations/$location/spaces/$space/applications/$application`
    previewApplicationRequest: A PreviewApplicationRequest resource to be
      passed as the request body.
  """

  name = _messages.StringField(1, required=True)
  previewApplicationRequest = _messages.MessageField('PreviewApplicationRequest', 2)


class DesigncenterProjectsLocationsSpacesCatalogsCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsCreateRequest object.

  Fields:
    catalog: A Catalog resource to be passed as the request body.
    catalogId: Required. The ID of the catalog to create.
    parent: Required. The parent space in which a catalog is created in the
      following format: `projects/$project/locations/$location/spaces/$space`
  """

  catalog = _messages.MessageField('Catalog', 1)
  catalogId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsDeleteRequest object.

  Fields:
    force: Optional. If set to true, the catalog's children are also deleted.
      If false, the catalog is only deleted if it has no children.
    name: Required. The catalog name in the following format:
      `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsGetRequest object.

  Fields:
    name: Required. The catalog name in the following format:
      `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsListRequest object.

  Fields:
    filter: Optional. A filter that chooses which catalogs to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, retrieve the next batch of results from
      the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent space from which catalogs are listed. Format:
      `projects/$project/locations/$location/spaces/$space`
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsPatchRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsPatchRequest object.

  Fields:
    catalog: A Catalog resource to be passed as the request body.
    name: Identifier. The catalog name in the following format:
      `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`
    updateMask: Optional. The fields to overwrite in the catalog update. If
      you don't provide a mask, all fields are overwritten.
  """

  catalog = _messages.MessageField('Catalog', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesCatalogsSharesCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsSharesCreateRequest object.

  Fields:
    parent: Required. The parent resource in which shares are created.
    share: A Share resource to be passed as the request body.
    shareId: Required. The ID of the share to create.
  """

  parent = _messages.StringField(1, required=True)
  share = _messages.MessageField('Share', 2)
  shareId = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesCatalogsSharesDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsSharesDeleteRequest object.

  Fields:
    name: Required. The share name in the following format: `projects/$project
      /locations/$location/spaces/$space/catalogs/$catalog/shares/$share`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsSharesGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsSharesGetRequest object.

  Fields:
    name: Required. The share name in the following format: `projects/$project
      /locations/$location/spaces/$space/catalogs/$catalog/shares/$share`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsSharesListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsSharesListRequest object.

  Fields:
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource from which a list of shares is
      requested.
  """

  orderBy = _messages.StringField(1)
  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsSharesSyncRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsSharesSyncRequest object.

  Fields:
    name: Required. The share name in the following format: `projects/$project
      /locations/$location/spaces/$space/catalogs/$catalog/shares/$share`
    syncShareRequest: A SyncShareRequest resource to be passed as the request
      body.
  """

  name = _messages.StringField(1, required=True)
  syncShareRequest = _messages.MessageField('SyncShareRequest', 2)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsTemplatesCreateRequest
  object.

  Fields:
    catalogTemplate: A CatalogTemplate resource to be passed as the request
      body.
    catalogTemplateId: Required. The ID of the catalog template to create. The
      ID is appended to the catalog template's name.
    parent: Required. The parent resource in which the catalog template is
      created.
  """

  catalogTemplate = _messages.MessageField('CatalogTemplate', 1)
  catalogTemplateId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsTemplatesDeleteRequest
  object.

  Fields:
    force: Optional. If set to true, the catalog template's children are also
      deleted. If false, the catalog template is only deleted if it has no
      children.
    name: Required. The catalog template name. Format: `projects/$project/loca
      tions/$location/spaces/$space/catalogs/$catalog/templates/$template`
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsTemplatesGetRequest object.

  Fields:
    name: Required. The catalog template name in the following format: `projec
      ts/$project/locations/$location/spaces/$space/catalogs/$catalog/template
      s/$template`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsTemplatesListRequest
  object.

  Fields:
    filter: Optional. A filter that chooses the catalog templates to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent from which the catalog templates are listed
      in the following format:
      `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesPatchRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCatalogsTemplatesPatchRequest
  object.

  Fields:
    catalogTemplate: A CatalogTemplate resource to be passed as the request
      body.
    name: Identifier. The catalog template name in following format: `projects
      /$project/locations/$location/spaces/$space/catalogs/$catalog/templates/
      $template`
    updateMask: Optional. The fields to overwrite in the catalog template
      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 you don't provide a mask, all fields are overwritten.
  """

  catalogTemplate = _messages.MessageField('CatalogTemplate', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsCreateRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsCreateRequest
  object.

  Fields:
    catalogTemplateRevision: A CatalogTemplateRevision resource to be passed
      as the request body.
    catalogTemplateRevisionId: Required. The ID of the template revision to
      create.
    parent: Required. The parent in which the catalog template revisions
      request is created in following format: `projects/$project/locations/$lo
      cation/spaces/$space/templates/$template`
  """

  catalogTemplateRevision = _messages.MessageField('CatalogTemplateRevision', 1)
  catalogTemplateRevisionId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsDeleteRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsDeleteRequest
  object.

  Fields:
    name: Required. The template revision name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsGetRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsGetRequest
  object.

  Fields:
    name: Required. The catalog template revisions name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsListRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesCatalogsTemplatesRevisionsListRequest
  object.

  Fields:
    filter: Optional. A filter that chooses which catalog template revisions
      to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource from which a list of catalog
      template revisions is requested.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesCreateRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesCreateRequest object.

  Fields:
    parent: Required. The parent in which to create a space.
    space: A Space resource to be passed as the request body.
    spaceId: Required. The ID of the space to create.
  """

  parent = _messages.StringField(1, required=True)
  space = _messages.MessageField('Space', 2)
  spaceId = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesDeleteRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesDeleteRequest object.

  Fields:
    force: Optional. If set to true, the space's children are also deleted. If
      false, the space is only deleted if it has no children.
    name: Required. The space name.
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesGenerateAssessmentReportRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesGenerateAssessmentReportRequest
  object.

  Fields:
    generateAssessmentReportRequest: A GenerateAssessmentReportRequest
      resource to be passed as the request body.
    spaceName: Required. The name of the space at which Generate Assessment
      Report is called. Format:
      `projects/$project/locations/$location/spaces/$space`
  """

  generateAssessmentReportRequest = _messages.MessageField('GenerateAssessmentReportRequest', 1)
  spaceName = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesGenerateTerraformPlanAssessmentReportRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesGenerateTerraformPlanAssessmentRepo
  rtRequest object.

  Fields:
    generateTerraformPlanAssessmentReportRequest: A
      GenerateTerraformPlanAssessmentReportRequest resource to be passed as
      the request body.
    name: Required. The parent resource in which to generate the assessment
      report. Format: projects/$project/locations/$location/spaces/$space
  """

  generateTerraformPlanAssessmentReportRequest = _messages.MessageField('GenerateTerraformPlanAssessmentReportRequest', 1)
  name = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesGetIamPolicyRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesGetIamPolicyRequest object.

  Fields:
    options_requestedPolicyVersion: Optional. The maximum policy version that
      will be used to format the policy. Valid values are 0, 1, and 3.
      Requests specifying an invalid value will be rejected. Requests for
      policies with any conditional role bindings must specify version 3.
      Policies with no conditional role bindings may specify any valid value
      or leave the field unset. The policy in the response might use the
      policy version that you specified, or it might use a lower policy
      version. For example, if you specify version 3, but the policy has no
      conditional role bindings, the response uses version 1. To learn which
      resources support conditions in their IAM policies, see the [IAM
      documentation](https://cloud.google.com/iam/help/conditions/resource-
      policies).
    resource: REQUIRED: The resource for which the policy is being requested.
      See [Resource
      names](https://cloud.google.com/apis/design/resource_names) for the
      appropriate value for this field.
  """

  options_requestedPolicyVersion = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  resource = _messages.StringField(2, required=True)


class DesigncenterProjectsLocationsSpacesGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesGetRequest object.

  Fields:
    name: Required. The space name.
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesListRequest object.

  Fields:
    filter: Optional. A filter that chooses which spaces to return.
    orderBy: Optional. How the results are sorted.
    pageSize: Optional. The maximum number of pages to return from this
      request. If unspecified, the value automatically reflects the number of
      results returned.
    pageToken: Optional. If present, retrieve the next batch of results from
      the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The name of the parent resource, for which spaces are
      listed.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesPatchRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesPatchRequest object.

  Fields:
    name: Identifier. The space name.
    space: A Space resource to be passed as the request body.
    updateMask: Optional. The fields to overwrite in the space update. If you
      don't provide a mask, all fields are overwritten.
  """

  name = _messages.StringField(1, required=True)
  space = _messages.MessageField('Space', 2)
  updateMask = _messages.StringField(3)


class DesigncenterProjectsLocationsSpacesRegisterAppHubApplicationResourcesRequest(_messages.Message):
  r"""A
  DesigncenterProjectsLocationsSpacesRegisterAppHubApplicationResourcesRequest
  object.

  Fields:
    parent: Required. The parent location. Format:
      projects/{project}/locations/{location}
    registerAppHubApplicationResourcesRequest: A
      RegisterAppHubApplicationResourcesRequest resource to be passed as the
      request body.
  """

  parent = _messages.StringField(1, required=True)
  registerAppHubApplicationResourcesRequest = _messages.MessageField('RegisterAppHubApplicationResourcesRequest', 2)


class DesigncenterProjectsLocationsSpacesSetIamPolicyRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesSetIamPolicyRequest object.

  Fields:
    resource: REQUIRED: The resource for which the policy is being specified.
      See [Resource
      names](https://cloud.google.com/apis/design/resource_names) for the
      appropriate value for this field.
    setIamPolicyRequest: A SetIamPolicyRequest resource to be passed as the
      request body.
  """

  resource = _messages.StringField(1, required=True)
  setIamPolicyRequest = _messages.MessageField('SetIamPolicyRequest', 2)


class DesigncenterProjectsLocationsSpacesSharedTemplatesGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesSharedTemplatesGetRequest object.

  Fields:
    name: Required. The shared template name. Format: `projects/$project/locat
      ions/$location/spaces/$space/sharedTemplates/$sharedTemplate`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesSharedTemplatesListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesSharedTemplatesListRequest object.

  Fields:
    filter: Optional. A filter that chooses which shared templates to return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent space for which shared templates are listed
      in the following format:
      `projects/$project/locations/$location/spaces/$space`
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesSharedTemplatesRevisionsGetRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesSharedTemplatesRevisionsGetRequest
  object.

  Fields:
    name: Required. The shared template revision name, in the following
      format: `projects/$project/locations/$location/spaces/$space/sharedTempl
      ates/$sharedTemplate/revisions/$revision`
  """

  name = _messages.StringField(1, required=True)


class DesigncenterProjectsLocationsSpacesSharedTemplatesRevisionsListRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesSharedTemplatesRevisionsListRequest
  object.

  Fields:
    filter: Optional. A filter that chooses which shared template revisions to
      return.
    orderBy: Optional. How the results should be sorted.
    pageSize: Optional. The maximum number of results to return from this
      request. Non-positive values are ignored. The presence of nextPageToken
      in the response indicates that more results might be available.
    pageToken: Optional. If present, then retrieve the next batch of results
      from the preceding call to this method. pageToken must be the value of
      nextPageToken from the previous response. The values of other method
      parameters should be identical to those in the previous call.
    parent: Required. The parent resource from which to list shared template
      revisions, in the following format: `projects/$project/locations/$locati
      on/spaces/$space/sharedTemplates/$sharedTemplate`
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class DesigncenterProjectsLocationsSpacesTestIamPermissionsRequest(_messages.Message):
  r"""A DesigncenterProjectsLocationsSpacesTestIamPermissionsRequest object.

  Fields:
    resource: REQUIRED: The resource for which the policy detail is being
      requested. See [Resource
      names](https://cloud.google.com/apis/design/resource_names) for the
      appropriate value for this field.
    testIamPermissionsRequest: A TestIamPermissionsRequest resource to be
      passed as the request body.
  """

  resource = _messages.StringField(1, required=True)
  testIamPermissionsRequest = _messages.MessageField('TestIamPermissionsRequest', 2)


class DeveloperConnectConfig(_messages.Message):
  r"""This config defines the location of a source through Developer Connect.

  Fields:
    gitRepositoryLink: Required. The Developer Connect Git repository link,
      formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.
  """

  gitRepositoryLink = _messages.StringField(1)


class DeveloperConnectExportConfig(_messages.Message):
  r"""Through Developer Connect, defines a location where content such as
  Infrastructure as Code (IaC) is stored.

  Fields:
    branch: Optional. The branch in repo to which the content such as
      Infrastructure as Code (IaC) should be written to. If empty, Application
      Design Center will create a branch and push the changes.
    commitSha: Output only. The SHA of the Git commit that contains the
      exported content such as Infrastructure as Code (IaC).
    developerConnectRepoUri: Required. The Developer Connect Git repository
      link, formatted as
      `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.
    dir: Required. Directory, relative to the source repo, where content such
      as Infrastructure as Code (IaC) will be stored. This must be a relative
      path.To specify the root directory, use '/'. If the path or any
      subdirectories do not exist, they will be created.
  """

  branch = _messages.StringField(1)
  commitSha = _messages.StringField(2)
  developerConnectRepoUri = _messages.StringField(3)
  dir = _messages.StringField(4)


class DeveloperConnectSourceConfig(_messages.Message):
  r"""This config specifies the location of a source (such as GitHub or
  Bitbucket) through Developer Connect.

  Fields:
    developerConnectRepoUri: Required. The Developer Connect Git repository
      link, formatted as
      `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.
    dir: Required. The sub-directory within the repository from which to read
      content. The path must be relative to the repository's root such as
      dir1/dir2. To read content from the root dir, provide "/" as the value
      of the field.
    fetchedCommitSha: Output only. The SHA of the commit deduced from
      GitReference.
    reference: Required. The reference (for example, a branch, tag, or commit
      SHA) from which the content should be read.
  """

  developerConnectRepoUri = _messages.StringField(1)
  dir = _messages.StringField(2)
  fetchedCommitSha = _messages.StringField(3)
  reference = _messages.MessageField('GitReference', 4)


class DisplayVariable(_messages.Message):
  r"""Additional display specific Template pertaining to a particular input
  variable.

  Messages:
    PropertiesValue: Optional. properties is a map defining all the fields of
      the input variable.

  Fields:
    alternateDefaults: Optional. Alternate defaults for the input.
    enumValueLabels: Optional. Labels for enum values. Values must be UTF-8
      text with no markup, and at most 64 characters.
    level: Optional. Indicates the "advanced" level of the input property.
      Level 0 (default) will always be shown. Level 1 corresponds to one
      expansion (user clicks "show advanced options" or "more options").
      Higher levels correspond to further expansions, or they may be collapsed
      to level 1 by the UI implementation. Optional.
    max: Optional. Maximum value for numeric types.
    min: Optional. Minimum value for numeric types.
    name: Required. The variable name from the corresponding standard Template
      file.
    properties: Optional. properties is a map defining all the fields of the
      input variable.
    regexValidation: Optional. Regex based validation rules for the variable.
    subtext: Optional. Property subtext, displayed below the title.
    title: Required. Visible title for the variable on the UI.
    validation: Optional. Text describing the validation rules for the
      property. Typically shown after an invalid input. Optional. UTF-8 text.
      No markup. At most 128 characters.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PropertiesValue(_messages.Message):
    r"""Optional. properties is a map defining all the fields of the input
    variable.

    Messages:
      AdditionalProperty: An additional property for a PropertiesValue object.

    Fields:
      additionalProperties: Additional properties of type PropertiesValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a PropertiesValue object.

      Fields:
        key: Name of the additional property.
        value: A DisplayVariable attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('DisplayVariable', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  alternateDefaults = _messages.MessageField('AlternateDefaultInput', 1, repeated=True)
  enumValueLabels = _messages.MessageField('ValueLabelInput', 2, repeated=True)
  level = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  max = _messages.FloatField(4, variant=_messages.Variant.FLOAT)
  min = _messages.FloatField(5, variant=_messages.Variant.FLOAT)
  name = _messages.StringField(6)
  properties = _messages.MessageField('PropertiesValue', 7)
  regexValidation = _messages.StringField(8)
  subtext = _messages.StringField(9)
  title = _messages.StringField(10)
  validation = _messages.StringField(11)


class DisplayVariableToggle(_messages.Message):
  r"""Display variable toggle.

  Enums:
    VariableTypeValueValuesEnum: Output only. The type of the variable used to
      toggle the display of another variable.

  Fields:
    variable: Output only. The name of the variable used to toggle the display
      of another variable.
    variableType: Output only. The type of the variable used to toggle the
      display of another variable.
    variableValues: Output only. The value of the variable used to toggle the
      display of another variable.
  """

  class VariableTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The type of the variable used to toggle the display of
    another variable.

    Values:
      TOGGLE_VARIABLE_TYPE_UNSPECIFIED: Default
      TOGGLE_VARIABLE_TYPE_BOOLEAN: Boolean
      TOGGLE_VARIABLE_TYPE_STRING: String
      TOGGLE_VARIABLE_TYPE_INTEGER: Integer
    """
    TOGGLE_VARIABLE_TYPE_UNSPECIFIED = 0
    TOGGLE_VARIABLE_TYPE_BOOLEAN = 1
    TOGGLE_VARIABLE_TYPE_STRING = 2
    TOGGLE_VARIABLE_TYPE_INTEGER = 3

  variable = _messages.StringField(1)
  variableType = _messages.EnumField('VariableTypeValueValuesEnum', 2)
  variableValues = _messages.StringField(3, repeated=True)


class Domain(_messages.Message):
  r"""Domain for assessment.

  Fields:
    description: Optional. The domain description.
    displayName: Optional. The domain display name is user friendly name used
      for UI.
    domainName: Required. The domain name. Uniquely identifies the domain.
    frameworks: Optional. The frameworks that are applicable in this domain.
    inactive: Optional. Whether the domain is inactive. Default: false.
  """

  description = _messages.StringField(1)
  displayName = _messages.StringField(2)
  domainName = _messages.StringField(3)
  frameworks = _messages.MessageField('Framework', 4, repeated=True)
  inactive = _messages.BooleanField(5)


class DomainAssessmentReport(_messages.Message):
  r"""The assessment report for each domain.

  Enums:
    StatusValueValuesEnum: Optional. Status of assessment report.

  Fields:
    adcMetadata: Output only. Specific information and metadata.
    additionalInfo: Optional. Additional information about the report.
    assessedFrameworks: Required. List of frameworks assessed and their
      findings.
    createTime: Output only. The time at which the report was created.
    domainId: Output only. The ID of the domain.
    domainRedirectInfo: Optional. Information on how to redirect to domain.
    reportName: Optional. The report name as per Application Design Center.
    reportScore: Output only. Score card associated with the report.
    skippedAssetTypes: Optional. List of asset types skipped during
      assessment.
    status: Optional. Status of assessment report.
    updateTime: Output only. The time at which the report was last updated.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""Optional. Status of assessment report.

    Values:
      STATUS_UNSPECIFIED: No status specified.
      PENDING: Pending domain assessment.
      COMPLETED: Complete domain assessment.
      FAILED: Failed domain assessment.
    """
    STATUS_UNSPECIFIED = 0
    PENDING = 1
    COMPLETED = 2
    FAILED = 3

  adcMetadata = _messages.MessageField('AdcMetadata', 1)
  additionalInfo = _messages.StringField(2)
  assessedFrameworks = _messages.MessageField('AssessedFramework', 3, repeated=True)
  createTime = _messages.StringField(4)
  domainId = _messages.StringField(5)
  domainRedirectInfo = _messages.MessageField('DomainRedirectInfo', 6)
  reportName = _messages.StringField(7)
  reportScore = _messages.MessageField('ScoreCard', 8)
  skippedAssetTypes = _messages.StringField(9, repeated=True)
  status = _messages.EnumField('StatusValueValuesEnum', 10)
  updateTime = _messages.StringField(11)


class DomainRedirectInfo(_messages.Message):
  r"""Information on how to redirect to domain.

  Fields:
    openInSameTab: Optional. Flag to open the URL in new tab. Default: false.
    url: Required. URL to the domain page.
    urlText: Required. Text to display in UI on the redirect URL.
  """

  openInSameTab = _messages.BooleanField(1)
  url = _messages.StringField(2)
  urlText = _messages.StringField(3)


class Empty(_messages.Message):
  r"""A generic empty message that you can re-use to avoid defining duplicated
  empty messages in your APIs. A typical example is to use it as the request
  or the response type of an API method. For instance: service Foo { rpc
  Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  """



class Environment(_messages.Message):
  r"""Environment of the Application, Service, or Workload

  Enums:
    TypeValueValuesEnum: Required. Environment Type.

  Fields:
    environment: Optional. Environment name. Can contain only lowercase
      letters, numeric characters, underscores, and dashes. Can have a maximum
      length of 63 characters. Deprecated: Please refer to type instead.
    type: Required. Environment Type.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Required. Environment Type.

    Values:
      TYPE_UNSPECIFIED: Unspecified type.
      PRODUCTION: Production environment.
      STAGING: Staging environment.
      TEST: Test environment.
      DEVELOPMENT: Development environment.
    """
    TYPE_UNSPECIFIED = 0
    PRODUCTION = 1
    STAGING = 2
    TEST = 3
    DEVELOPMENT = 4

  environment = _messages.StringField(1)
  type = _messages.EnumField('TypeValueValuesEnum', 2)


class ExportApplicationTemplateIaCRequest(_messages.Message):
  r"""Request message for ExportApplicationTemplateIaC method.

  Fields:
    artifactLocation: Optional. Specifies the destination for the generated
      IaC, which can be Cloud Storage or a Developer Connect repository.
      Default is Google Cloud Storage.
    exportIacConfig: Optional. Configuration for exporting IaC.
  """

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  exportIacConfig = _messages.MessageField('ExportIaCConfig', 2)


class ExportApplicationTemplateRevisionIaCRequest(_messages.Message):
  r"""Request message for ExportApplicationTemplateRevisionIaC method.

  Fields:
    artifactLocation: Optional. Specifies the destination for the generated
      IaC, which can be Cloud Storage or a Developer Connect repository.
      Default is Google Cloud Storage.
    exportIacConfig: Optional. Configuration for exporting IaC.
  """

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  exportIacConfig = _messages.MessageField('ExportIaCConfig', 2)


class ExportIaCConfig(_messages.Message):
  r"""Configuration for exporting a resource as IAC.

  Enums:
    IacFormatValueValuesEnum: Optional. IaC format of the export. Default is
      [IACFormat.TERRAFORM].

  Fields:
    iacFormat: Optional. IaC format of the export. Default is
      [IACFormat.TERRAFORM].
    tfConfig: Optional. Configuration on how to handle terraform IaC export.
  """

  class IacFormatValueValuesEnum(_messages.Enum):
    r"""Optional. IaC format of the export. Default is [IACFormat.TERRAFORM].

    Values:
      IAC_FORMAT_UNSPECIFIED: IaC format is unspecified.
      TERRAFORM: IaC format is Terraform.
      HELM: IaC format is HELM.
    """
    IAC_FORMAT_UNSPECIFIED = 0
    TERRAFORM = 1
    HELM = 2

  iacFormat = _messages.EnumField('IacFormatValueValuesEnum', 1)
  tfConfig = _messages.MessageField('TerraformConfig', 2)


class Expr(_messages.Message):
  r"""Represents a textual expression in the Common Expression Language (CEL)
  syntax. CEL is a C-like expression language. The syntax and semantics of CEL
  are documented at https://github.com/google/cel-spec. Example (Comparison):
  title: "Summary size limit" description: "Determines if a summary is less
  than 100 chars" expression: "document.summary.size() < 100" Example
  (Equality): title: "Requestor is owner" description: "Determines if
  requestor is the document owner" expression: "document.owner ==
  request.auth.claims.email" Example (Logic): title: "Public documents"
  description: "Determine whether the document should be publicly visible"
  expression: "document.type != 'private' && document.type != 'internal'"
  Example (Data Manipulation): title: "Notification string" description:
  "Create a notification string with a timestamp." expression: "'New message
  received at ' + string(document.create_time)" The exact variables and
  functions that may be referenced within an expression are determined by the
  service that evaluates it. See the service documentation for additional
  information.

  Fields:
    description: Optional. Description of the expression. This is a longer
      text which describes the expression, e.g. when hovered over it in a UI.
    expression: Textual representation of an expression in Common Expression
      Language syntax.
    location: Optional. String indicating the location of the expression for
      error reporting, e.g. a file name and a position in the file.
    title: Optional. Title for the expression, i.e. a short string describing
      its purpose. This can be used e.g. in UIs which allow to enter the
      expression.
  """

  description = _messages.StringField(1)
  expression = _messages.StringField(2)
  location = _messages.StringField(3)
  title = _messages.StringField(4)


class FetchApplicationAssessmentReportResponse(_messages.Message):
  r"""Message for response of fetching an application assessment report.

  Fields:
    assessmentReport: Assessment report for the application.
  """

  assessmentReport = _messages.MessageField('AssessmentReport', 1)


class FetchFrameworksResponse(_messages.Message):
  r"""Response for FetchFrameworks rpc

  Fields:
    frameworks: The list of frameworks.
    nextPageToken: A token, which can be sent as `page_token` to retrieve the
      next page. If this field is omitted, there are no subsequent pages.
  """

  frameworks = _messages.MessageField('Framework', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class FindingADCMetadata(_messages.Message):
  r"""Metadata related to the Application Design Center with the finding.

  Fields:
    componentName: Output only. Component the finding belongs to.
  """

  componentName = _messages.StringField(1)


class Framework(_messages.Message):
  r"""Framework for assessment.

  Enums:
    DeploymentStatusValueValuesEnum: Optional. The deployment status of the
      framework.

  Fields:
    active: Optional. Whether the framework is active.
    cloudControlDetails: Optional. The cloud controls that are associated with
      the framework.
    deploymentStatus: Optional. The deployment status of the framework.
    description: Optional. The framework description.
    displayName: Optional. The framework display name.
    majorRevisionId: Optional. The major revision id of the framework.
    name: Required. The framework name.
    parentDomain: Required. The domain to which this framework belongs.
    url: Optional. The URL to a framework.
  """

  class DeploymentStatusValueValuesEnum(_messages.Enum):
    r"""Optional. The deployment status of the framework.

    Values:
      DEPLOYMENT_STATUS_UNSPECIFIED: Deployment status unspecified.
      DEPLOYED: Framework is deployed.
      UNDEPLOYED: Framework is undeployed.
    """
    DEPLOYMENT_STATUS_UNSPECIFIED = 0
    DEPLOYED = 1
    UNDEPLOYED = 2

  active = _messages.BooleanField(1)
  cloudControlDetails = _messages.MessageField('CloudControl', 2, repeated=True)
  deploymentStatus = _messages.EnumField('DeploymentStatusValueValuesEnum', 3)
  description = _messages.StringField(4)
  displayName = _messages.StringField(5)
  majorRevisionId = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  name = _messages.StringField(7)
  parentDomain = _messages.MessageField('Domain', 8)
  url = _messages.StringField(9)


class GKEDeploymentTarget(_messages.Message):
  r"""The GKE deployment target.

  Fields:
    clusterSelfLink: Required. The self link of the cluster where GKE based
      application is deployed.
    kubernetesServiceAccount: Required. The kubernetes service account that is
      created within the namespace provided above. Example: default or node-sa
    kubernetesServiceAccountCreation: Optional. Whether to create the provided
      KSA. If true, the KSA will be created in the namespace provided above.
      If false, the KSA is expected to already exist in the namespace provided
      above.
    namespace: Required. The namespace where the application is deployed.
  """

  clusterSelfLink = _messages.StringField(1)
  kubernetesServiceAccount = _messages.StringField(2)
  kubernetesServiceAccountCreation = _messages.BooleanField(3)
  namespace = _messages.StringField(4)


class GenerateApplicationAssessmentReportRequest(_messages.Message):
  r"""Message for generating an application assessment report."""


class GenerateApplicationIaCRequest(_messages.Message):
  r"""Request message for GenerateApplicationIaC method.

  Enums:
    IacFormatValueValuesEnum: Optional. The IaC format to generate.

  Fields:
    artifactLocation: Optional. Specifies the destination for the generated
      IaC, which can be Cloud Storage or a Developer Connect repository.
    gcsUri: Optional. The Cloud Storage URI to write the generated IaC to.
      DEPRECATED: Use the 'artifact_location' field instead.
    iacFormat: Optional. The IaC format to generate.
  """

  class IacFormatValueValuesEnum(_messages.Enum):
    r"""Optional. The IaC format to generate.

    Values:
      IAC_FORMAT_UNSPECIFIED: IaC format is unspecified.
      TERRAFORM: IaC format is Terraform.
      HELM: IaC format is HELM.
    """
    IAC_FORMAT_UNSPECIFIED = 0
    TERRAFORM = 1
    HELM = 2

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  gcsUri = _messages.StringField(2)
  iacFormat = _messages.EnumField('IacFormatValueValuesEnum', 3)


class GenerateApplicationIaCResponse(_messages.Message):
  r"""Response message for GenerateApplicationIaC method.

  Fields:
    artifactLocation: The destination where the generated IaC was written.
    gcsUri: The Cloud Storage URI of the generated IaC. DEPRECATED: Use the
      'artifact_location' field instead.
    rootModulesMetadata: Root modules metadata of the application.
  """

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  gcsUri = _messages.StringField(2)
  rootModulesMetadata = _messages.MessageField('RootModulesMetadata', 3)


class GenerateApplicationTemplateAssessmentReportRequest(_messages.Message):
  r"""Message for generate assessment report application template.

  Fields:
    serviceAccount: Optional. Deprecated: This field is no longer used since
      we moved to fast plan assessment. - This service account will be used to
      execute the preview process. - The caller must have the
      'iam.serviceAccounts.actAs' permission on this service account. Format:
      projects/{PROJECT}/serviceAccounts/{EMAIL_ADDRESS}
  """

  serviceAccount = _messages.StringField(1)


class GenerateApplicationTemplateIaCRequest(_messages.Message):
  r"""Request message for GenerateApplicationTemplateIaC method.

  Enums:
    IacFormatValueValuesEnum: Optional. The IaC format to generate.

  Fields:
    artifactLocation: Optional. Specifies the destination for the generated
      IaC, which can be Cloud Storage or a Developer Connect repository.
    gcsUri: Optional. The Cloud Storage URI to write the generated IaC to.
      DEPRECATED: Use the 'artifact_location' field instead.
    iacFormat: Optional. The IaC format to generate.
  """

  class IacFormatValueValuesEnum(_messages.Enum):
    r"""Optional. The IaC format to generate.

    Values:
      IAC_FORMAT_UNSPECIFIED: IaC format is unspecified.
      TERRAFORM: IaC format is Terraform.
      HELM: IaC format is HELM.
    """
    IAC_FORMAT_UNSPECIFIED = 0
    TERRAFORM = 1
    HELM = 2

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  gcsUri = _messages.StringField(2)
  iacFormat = _messages.EnumField('IacFormatValueValuesEnum', 3)


class GenerateApplicationTemplateIaCResponse(_messages.Message):
  r"""Response message for GenerateApplicationTemplateIaC method.

  Fields:
    artifactLocation: The destination where the generated IaC was written.
    gcsUri: The Cloud Storage URI of the generated IaC. DEPRECATED: Use the
      'artifact_location' field instead.
    rootModulesMetadata: Root modules metadata of the application template.
  """

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  gcsUri = _messages.StringField(2)
  rootModulesMetadata = _messages.MessageField('RootModulesMetadata', 3)


class GenerateApplicationTemplateRevisionIaCRequest(_messages.Message):
  r"""Request message for GenerateApplicationTemplateRevisionIaC method.

  Enums:
    IacFormatValueValuesEnum: Optional. The IaC format to generate.

  Fields:
    artifactLocation: Optional. Specifies the destination for the generated
      IaC, which can be Cloud Storage or a Developer Connect repository.
    iacFormat: Optional. The IaC format to generate.
  """

  class IacFormatValueValuesEnum(_messages.Enum):
    r"""Optional. The IaC format to generate.

    Values:
      IAC_FORMAT_UNSPECIFIED: IaC format is unspecified.
      TERRAFORM: IaC format is Terraform.
      HELM: IaC format is HELM.
    """
    IAC_FORMAT_UNSPECIFIED = 0
    TERRAFORM = 1
    HELM = 2

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  iacFormat = _messages.EnumField('IacFormatValueValuesEnum', 2)


class GenerateApplicationTemplateRevisionIaCResponse(_messages.Message):
  r"""Response message for GenerateApplicationTemplateRevisionIaC method.

  Fields:
    artifactLocation: The destination where the generated IaC was written.
    rootModulesMetadata: Root modules metadata of the application template
      revision.
  """

  artifactLocation = _messages.MessageField('ArtifactLocation', 1)
  rootModulesMetadata = _messages.MessageField('RootModulesMetadata', 2)


class GenerateAssessmentReportOperationMetadata(_messages.Message):
  r"""Ephemeral metadata depicting the state of assessment report generation.

  Enums:
    StepValueValuesEnum: Output only. The current step of the generate
      assessment report operation.

  Fields:
    step: Output only. The current step of the generate assessment report
      operation.
  """

  class StepValueValuesEnum(_messages.Enum):
    r"""Output only. The current step of the generate assessment report
    operation.

    Values:
      ASSESSMENT_STEP_UNSPECIFIED: Unspecified step.
      FAST_PLAN: Generating Terraform fast plan.
      ASSESSMENT_REPORT: Generating BPBD assessment report.
      SUCCEEDED: Succeeded.
      FAILED: Failed.
    """
    ASSESSMENT_STEP_UNSPECIFIED = 0
    FAST_PLAN = 1
    ASSESSMENT_REPORT = 2
    SUCCEEDED = 3
    FAILED = 4

  step = _messages.EnumField('StepValueValuesEnum', 1)


class GenerateAssessmentReportRequest(_messages.Message):
  r"""Deprecated: Use GenerateTerraformPlanAssessmentReportRequest instead.
  Message for the request to generate a best practice report for a given
  Terraform plan.

  Fields:
    additionalFrameworks: Optional. Additional Frameworks to run assessment
      against. If empty, run against default frameworks. Frameworks refers to
      the policies.
    terraformPlan: Required. Terraform plan bytes.
  """

  additionalFrameworks = _messages.StringField(1, repeated=True)
  terraformPlan = _messages.BytesField(2)


class GenerateTerraformPlanAssessmentReportRequest(_messages.Message):
  r"""Message for the request to generate a best practice report for a given
  Terraform plan at the collection level.

  Fields:
    additionalFrameworks: Optional. Additional Frameworks to run assessment
      against. If empty, run against default frameworks. Frameworks refers to
      the policies.
    terraformPlan: Required. The raw JSON representation of the generated
      Terraform plan, provided as bytes.
  """

  additionalFrameworks = _messages.StringField(1, repeated=True)
  terraformPlan = _messages.BytesField(2)


class GitReference(_messages.Message):
  r"""The Git reference. Can be a commit SHA, branch name, or tag name.

  Fields:
    branch: Optional. The name of the branch from which content should be
      read. For example: "main"
    commitSha: Optional. The full SHA hash of a specific commit from which
      content should be read.
    refTag: Optional. The reference tag from which content should be read. For
      example: "v1.2.3"
  """

  branch = _messages.StringField(1)
  commitSha = _messages.StringField(2)
  refTag = _messages.StringField(3)


class GitSource(_messages.Message):
  r"""Defines how to access a Git source.

  Fields:
    commitSha: Output only. The commit SHA of the git repo deduced from given
      ref_tag.
    developerConnectConfig: Optional. This config defines the location of a
      source through Developer Connect. Used to access private git repos.
    dir: Optional. Directory, relative to the source root, in which to run the
      build. This must be a relative path. If a step's `dir` is specified and
      is an absolute path, this value is ignored for that step's execution.
    refTag: Required. The reference tag of the git repo.
    repo: Required. Location of the git repo to build.
  """

  commitSha = _messages.StringField(1)
  developerConnectConfig = _messages.MessageField('DeveloperConnectConfig', 2)
  dir = _messages.StringField(3)
  refTag = _messages.StringField(4)
  repo = _messages.StringField(5)


class HelmApplicationOutputParameters(_messages.Message):
  r"""The helm application output parameters of the deployment.

  Fields:
    parameters: Output only. The output parameters of the helm application.
  """

  parameters = _messages.MessageField('Parameter', 1, repeated=True)


class HelmChartInput(_messages.Message):
  r"""Helm Chart inputs. Documentation: https://helm.sh/docs/

  Messages:
    NestedInputsValue: Output only. Contains details of nested inputs.

  Fields:
    defaultValue: Output only. The default value of the input variable.
    description: Output only. Input variable description.
    helmInputVariable: Output only. Input variable name present in Helm Chart
      values.yaml
    isRequired: Output only. Indicates if input is required.
    nestedInputs: Output only. Contains details of nested inputs.
    type: Output only. Input data type.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class NestedInputsValue(_messages.Message):
    r"""Output only. Contains details of nested inputs.

    Messages:
      AdditionalProperty: An additional property for a NestedInputsValue
        object.

    Fields:
      additionalProperties: Additional properties of type NestedInputsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a NestedInputsValue object.

      Fields:
        key: Name of the additional property.
        value: A HelmChartInput attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('HelmChartInput', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  defaultValue = _messages.MessageField('extra_types.JsonValue', 1)
  description = _messages.StringField(2)
  helmInputVariable = _messages.StringField(3)
  isRequired = _messages.BooleanField(4)
  nestedInputs = _messages.MessageField('NestedInputsValue', 5)
  type = _messages.StringField(6)


class HelmChartMetadata(_messages.Message):
  r"""Helm Chart metadata.

  Fields:
    helmInput: Output only. Helm Chart inputs.
    helmOutput: Output only. Helm Chart outputs.
  """

  helmInput = _messages.MessageField('HelmChartInput', 1, repeated=True)
  helmOutput = _messages.MessageField('HelmChartOutput', 2, repeated=True)


class HelmChartOutput(_messages.Message):
  r"""Helm Chart outputs.

  Fields:
    description: Output only. Description of the variable.
    helmOutputVariable: Output only. Output variable name present.
    value: Output only. Type of output.
  """

  description = _messages.StringField(1)
  helmOutputVariable = _messages.StringField(2)
  value = _messages.MessageField('extra_types.JsonValue', 3)


class IaCFile(_messages.Message):
  r"""IaCFile represents a single infrastructure as code file.

  Fields:
    content: Optional. The content of the file. The content of the file can be
      read and passed as a string. For example, for a terraform file, the
      content is the the HCL content of the file.
    name: Required. The name of the file.
  """

  content = _messages.StringField(1)
  name = _messages.StringField(2)


class IaCModule(_messages.Message):
  r"""IaCModule represents a single infrastructure as code module.

  Fields:
    files: Optional. The files in the module.
  """

  files = _messages.MessageField('IaCFile', 1, repeated=True)


class IacFormatInfo(_messages.Message):
  r"""IacFormatInfo defines the actuation tool used to provision the Template.

  Fields:
    flavor: Required. Flavor is the type of the actuation tool.
    version: Required. Required version for the actuation tool.
      required_version = ">= 0.13"
  """

  flavor = _messages.StringField(1)
  version = _messages.StringField(2)


class ImportApplicationIaCRequest(_messages.Message):
  r"""Request message for ImportApplicationIaC method.

  Fields:
    allowPartialImport: Optional. If set to true, partially imports the valid
      edits in the IaC and ignores the invalid changes. Defaults to false,
      which means any edits which can't be imported must result in an error.
    gcsUri: Optional. The Cloud Storage URI of the terraform code.
    iacModule: Optional. The IaC module to import.
    validateIac: Optional. If set to true, the IaC is validated against the
      golden terraform without importing. Defaults to false.
  """

  allowPartialImport = _messages.BooleanField(1)
  gcsUri = _messages.StringField(2)
  iacModule = _messages.MessageField('IaCModule', 3)
  validateIac = _messages.BooleanField(4)


class ImportApplicationIaCResponse(_messages.Message):
  r"""Response message for ImportApplicationIaC method.

  Enums:
    StateValueValuesEnum: The state of the import.

  Fields:
    application: Application template corresponding to the imported IaC.
    errors: Errors encountered during import.
    state: The state of the import.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""The state of the import.

    Values:
      STATE_UNSPECIFIED: Default.
      SUCCEEDED: The import was successful.
      FAILED: The import failed.
    """
    STATE_UNSPECIFIED = 0
    SUCCEEDED = 1
    FAILED = 2

  application = _messages.MessageField('Application', 1)
  errors = _messages.MessageField('ImportIaCError', 2, repeated=True)
  state = _messages.EnumField('StateValueValuesEnum', 3)


class ImportApplicationTemplateIaCRequest(_messages.Message):
  r"""Request message for ImportApplicationTemplateIaC method.

  Fields:
    allowPartialImport: Optional. If set to true, partially imports the valid
      edits in the IaC and ignores the invalid changes. Defaults to false,
      which means any edits which can't be imported must result in an error.
    developerConnectSourceConfig: Optional. Configuration for fetching content
      from source code repository such as GitHub or Bitbucket through
      Developer Connect.
    gcsUri: Optional. The Cloud Storage URI of the terraform code.
    iacModule: Optional. The IaC module to import.
    validateIac: Optional. If set to true, the IaC is validated against the
      golden terraform without importing. Defaults to false.
  """

  allowPartialImport = _messages.BooleanField(1)
  developerConnectSourceConfig = _messages.MessageField('DeveloperConnectSourceConfig', 2)
  gcsUri = _messages.StringField(3)
  iacModule = _messages.MessageField('IaCModule', 4)
  validateIac = _messages.BooleanField(5)


class ImportApplicationTemplateIaCResponse(_messages.Message):
  r"""Response message for ImportApplicationTemplateIaC method.

  Enums:
    StateValueValuesEnum: The state of the import.

  Fields:
    applicationTemplate: Application template corresponding to the imported
      IaC.
    errors: Errors encountered during import.
    state: The state of the import.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""The state of the import.

    Values:
      STATE_UNSPECIFIED: Default.
      SUCCEEDED: The import was successful.
      FAILED: The import failed.
    """
    STATE_UNSPECIFIED = 0
    SUCCEEDED = 1
    FAILED = 2

  applicationTemplate = _messages.MessageField('ApplicationTemplate', 1)
  errors = _messages.MessageField('ImportIaCError', 2, repeated=True)
  state = _messages.EnumField('StateValueValuesEnum', 3)


class ImportApplicationTemplateRequest(_messages.Message):
  r"""Request message for ImportApplicationTemplate method.

  Messages:
    AnnotationsValue: Optional. Annotations to be stored with the new system
      revision created as a result of this import. Sample annotations from
      agentic workflows might look like {
      "designcenter.googleapis.com/agent_id": "gemini-3-flash-v1",
      "designcenter.googleapis.com/llm_agent_summary": "Restored to revision
      Rev-100", "designcenter.googleapis.com/external_ref_id": "trace-
      uuid-88921-xyz", }

  Fields:
    annotations: Optional. Annotations to be stored with the new system
      revision created as a result of this import. Sample annotations from
      agentic workflows might look like {
      "designcenter.googleapis.com/agent_id": "gemini-3-flash-v1",
      "designcenter.googleapis.com/llm_agent_summary": "Restored to revision
      Rev-100", "designcenter.googleapis.com/external_ref_id": "trace-
      uuid-88921-xyz", }
    applicationTemplateRevisionUri: Optional. The source URI for application
      template revision.
    applicationTemplateSystemRevision: Optional. The system revision to be
      imported. Used when user tries to Restore (rev X) or perform Undo/Redo
      operations.
    serializedApplicationTemplate: Optional. The serialized application
      template to be imported.
    sharedTemplateRevisionUri: Optional. The source URI for catalog template.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AnnotationsValue(_messages.Message):
    r"""Optional. Annotations to be stored with the new system revision
    created as a result of this import. Sample annotations from agentic
    workflows might look like { "designcenter.googleapis.com/agent_id":
    "gemini-3-flash-v1", "designcenter.googleapis.com/llm_agent_summary":
    "Restored to revision Rev-100",
    "designcenter.googleapis.com/external_ref_id": "trace-uuid-88921-xyz", }

    Messages:
      AdditionalProperty: An additional property for a AnnotationsValue
        object.

    Fields:
      additionalProperties: Additional properties of type AnnotationsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AnnotationsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  annotations = _messages.MessageField('AnnotationsValue', 1)
  applicationTemplateRevisionUri = _messages.StringField(2)
  applicationTemplateSystemRevision = _messages.StringField(3)
  serializedApplicationTemplate = _messages.MessageField('SerializedApplicationTemplate', 4)
  sharedTemplateRevisionUri = _messages.StringField(5)


class ImportIaCError(_messages.Message):
  r"""Message representing the error encountered during import. Example: A
  variable with name "name" is expected to be of type string, but is provided
  as number, inside a module named "my_module". { resource_address:
  "module.my_module.name" file: "gs://my_bucket/main.tf" range: { start: {
  line: 2 byte_offset: 1 column: 2 } end: { line: 2 byte_offset: 10 column: 10
  } } description: "Error parsing field: \"name\". Expected type \"string\"
  but got \"number\"." type: INVALID }

  Enums:
    TypeValueValuesEnum: Output only. The type of error.

  Fields:
    description: Output only. The description of the error.
    file: Output only. The file where the error has occurred.
    range: Output only. The code portion where this error occurs.
    resourceAddress: Output only. The resource address of the error.
    type: Output only. The type of error.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Output only. The type of error.

    Values:
      TYPE_UNSPECIFIED: Default.
      INVALID: The change is invalid. Example: a string value provided for a
        number input parameter type, which would be caught by terraform
        validation.
      NOT_SUPPORTED: The change is not supported. Example: a user directly
        adding a Terraform resource in main.tf that Design Center does not
        support importing.
    """
    TYPE_UNSPECIFIED = 0
    INVALID = 1
    NOT_SUPPORTED = 2

  description = _messages.StringField(1)
  file = _messages.StringField(2)
  range = _messages.MessageField('CodeRange', 3)
  resourceAddress = _messages.StringField(4)
  type = _messages.EnumField('TypeValueValuesEnum', 5)


class InferredMetadata(_messages.Message):
  r"""Inferred metadata.

  Fields:
    createTime: Output only. Inferred metadata creation timestamp.
    description: Output only. Inferred description.
    templateMetadata: Output only. Inferred template metadata related to
      Terraform input and output.
    updateTime: Output only. Inferred metadata update timestamp.
  """

  createTime = _messages.StringField(1)
  description = _messages.StringField(2)
  templateMetadata = _messages.MessageField('TFBlueprintMetadata', 3)
  updateTime = _messages.StringField(4)


class ListApplicationTemplateRevisionsResponse(_messages.Message):
  r"""Message for response to listing application template revisions.

  Fields:
    applicationTemplateRevisions: The list of application template revisions.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    unreachable: Locations that could not be reached.
  """

  applicationTemplateRevisions = _messages.MessageField('ApplicationTemplateRevision', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListApplicationTemplateSystemRevisionsResponse(_messages.Message):
  r"""Message for response to listing application template system revisions.

  Fields:
    applicationTemplateSystemRevisions: The list of application template
      system revisions.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    unreachable: Unordered list. Locations that could not be reached.
  """

  applicationTemplateSystemRevisions = _messages.MessageField('ApplicationTemplateSystemRevision', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListApplicationTemplatesResponse(_messages.Message):
  r"""Message for response to listing application templates.

  Fields:
    applicationTemplates: The list of application templates.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    unreachable: Locations that could not be reached.
  """

  applicationTemplates = _messages.MessageField('ApplicationTemplate', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListApplicationsResponse(_messages.Message):
  r"""Message for response to listing applications.

  Fields:
    applications: The list of applications.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    unreachable: Unordered list. Locations that could not be reached.
  """

  applications = _messages.MessageField('Application', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListCatalogTemplateRevisionsResponse(_messages.Message):
  r"""Message for response to listing template revisions.

  Fields:
    catalogTemplateRevisions: The list of template revisions.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    unreachable: Locations that could not be reached.
  """

  catalogTemplateRevisions = _messages.MessageField('CatalogTemplateRevision', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListCatalogTemplatesResponse(_messages.Message):
  r"""Message for response to listing catalog templates.

  Fields:
    catalogTemplates: The list of catalog templates.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
  """

  catalogTemplates = _messages.MessageField('CatalogTemplate', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListCatalogsResponse(_messages.Message):
  r"""Results returned from catalogs.list.

  Fields:
    catalogs: A list of catalogs
    nextPageToken: If there might be more results than those appearing in this
      response, nextPageToken is included. To get the next set of results,
      call this method again using the value of nextPageToken as pageToken.
  """

  catalogs = _messages.MessageField('Catalog', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListComponentsResponse(_messages.Message):
  r"""Message for response to listing components.

  Fields:
    components: The list of components.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    unreachable: Locations that could not be reached.
  """

  components = _messages.MessageField('Component', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListConnectionsResponse(_messages.Message):
  r"""Message for response to listing connections.

  Fields:
    connections: The list of connections.
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    unreachable: Locations that could not be reached.
  """

  connections = _messages.MessageField('Connection', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListLocationsResponse(_messages.Message):
  r"""The response message for Locations.ListLocations.

  Fields:
    locations: A list of locations that matches the specified filter in the
      request.
    nextPageToken: The standard List next-page token.
  """

  locations = _messages.MessageField('Location', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListOperationsResponse(_messages.Message):
  r"""The response message for Operations.ListOperations.

  Fields:
    nextPageToken: The standard List next-page token.
    operations: A list of operations that matches the specified filter in the
      request.
    unreachable: Unordered list. Unreachable resources. Populated when the
      request sets `ListOperationsRequest.return_partial_success` and reads
      across collections. For example, when attempting to list all resources
      across all supported locations.
  """

  nextPageToken = _messages.StringField(1)
  operations = _messages.MessageField('Operation', 2, repeated=True)
  unreachable = _messages.StringField(3, repeated=True)


class ListPoliciesResponse(_messages.Message):
  r"""Message for response to listing policies.

  Fields:
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    policies: A list of policies.
  """

  nextPageToken = _messages.StringField(1)
  policies = _messages.MessageField('DesignCenterPolicy', 2, repeated=True)


class ListSharedTemplateRevisionsResponse(_messages.Message):
  r"""Message for response to listing shared templates.

  Fields:
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    sharedTemplateRevisions: The list of shared templates.
  """

  nextPageToken = _messages.StringField(1)
  sharedTemplateRevisions = _messages.MessageField('SharedTemplateRevision', 2, repeated=True)


class ListSharedTemplatesResponse(_messages.Message):
  r"""Message for response to listing shared templates.

  Fields:
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    sharedTemplates: The list of shared templates.
  """

  nextPageToken = _messages.StringField(1)
  sharedTemplates = _messages.MessageField('SharedTemplate', 2, repeated=True)


class ListSharesResponse(_messages.Message):
  r"""Message for response to listing shares of a catalog.

  Fields:
    nextPageToken: If there might be more results than those appearing in this
      response, then nextPageToken is included. To get the next set of
      results, call this method again using the value of nextPageToken as
      pageToken.
    shares: The list of shares.
  """

  nextPageToken = _messages.StringField(1)
  shares = _messages.MessageField('Share', 2, repeated=True)


class ListSpacesResponse(_messages.Message):
  r"""Results returned from projects.locations.spaces.list.

  Fields:
    nextPageToken: If there might be more results than those appearing in this
      response, nextPageToken is included. To get the next set of results,
      call this method again using the value of nextPageToken as pageToken.
    spaces: A list of spaces.
    unreachable: Unordered list. Locations that could not be reached.
  """

  nextPageToken = _messages.StringField(1)
  spaces = _messages.MessageField('Space', 2, repeated=True)
  unreachable = _messages.StringField(3, repeated=True)


class Location(_messages.Message):
  r"""A resource that represents a Google Cloud location.

  Messages:
    LabelsValue: Cross-service attributes for the location. For example
      {"cloud.googleapis.com/region": "us-east1"}
    MetadataValue: Service-specific metadata. For example the available
      capacity at the given location.

  Fields:
    displayName: The friendly name for this location, typically a nearby city
      name. For example, "Tokyo".
    labels: Cross-service attributes for the location. For example
      {"cloud.googleapis.com/region": "us-east1"}
    locationId: The canonical id for this location. For example: `"us-east1"`.
    metadata: Service-specific metadata. For example the available capacity at
      the given location.
    name: Resource name for the location, which may vary between
      implementations. For example: `"projects/example-project/locations/us-
      east1"`
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Cross-service attributes for the location. For example
    {"cloud.googleapis.com/region": "us-east1"}

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Service-specific metadata. For example the available capacity at the
    given location.

    Messages:
      AdditionalProperty: An additional property for a MetadataValue object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a MetadataValue object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  displayName = _messages.StringField(1)
  labels = _messages.MessageField('LabelsValue', 2)
  locationId = _messages.StringField(3)
  metadata = _messages.MessageField('MetadataValue', 4)
  name = _messages.StringField(5)


class LogicalProduct(_messages.Message):
  r"""Represents a Product Main logical product.

  Fields:
    name: Output only. The resource name of the logical product. Format:
      logicalProducts/{logical_product}
    shortDescription: Output only. A short description of the logical product.
    title: Output only. The display name of the logical product.
  """

  name = _messages.StringField(1)
  shortDescription = _messages.StringField(2)
  title = _messages.StringField(3)


class MetadataInput(_messages.Message):
  r"""Metadata for the input

  Fields:
    spec: Required. spec containing the metadata
  """

  spec = _messages.MessageField('MetadataInputSpec', 1)


class MetadataInputSpec(_messages.Message):
  r"""Specifications for the input

  Fields:
    info: Optional. TemplateInfo provides the actuation tool information.
    interfaces: Optional. TemplateSchemas provides the input variables lists
      and connection information.
    requirements: Required. TemplateRequirements defines the roles required
      and the provider versions.
    ui: Optional. TemplateUi defines the UI related information for the
      Template.
  """

  info = _messages.MessageField('TemplateInfo', 1)
  interfaces = _messages.MessageField('TemplateSchema', 2)
  requirements = _messages.MessageField('TemplateRequirements', 3)
  ui = _messages.MessageField('TemplateUi', 4)


class OciRepo(_messages.Message):
  r"""Open Container Initiative (OCI) repo.

  Fields:
    moduleSourceUri: Optional. Field for containing the references to the
      source from which the OCI repo was created.
    uri: Required. Path to Open Container Initiative (OCI) repo. Example:
      oci://us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart
    version: Optional. The version of the helm chart.
  """

  moduleSourceUri = _messages.StringField(1)
  uri = _messages.StringField(2)
  version = _messages.StringField(3)


class Operation(_messages.Message):
  r"""This resource represents a long-running operation that is the result of
  a network API call.

  Messages:
    MetadataValue: Service-specific metadata associated with the operation. It
      typically contains progress information and common metadata such as
      create time. Some services might not provide such metadata. Any method
      that returns a long-running operation should document the metadata type,
      if any.
    ResponseValue: The normal, successful response of the operation. If the
      original method returns no data on success, such as `Delete`, the
      response is `google.protobuf.Empty`. If the original method is standard
      `Get`/`Create`/`Update`, the response should be the resource. For other
      methods, the response should have the type `XxxResponse`, where `Xxx` is
      the original method name. For example, if the original method name is
      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

  Fields:
    done: If the value is `false`, it means the operation is still in
      progress. If `true`, the operation is completed, and either `error` or
      `response` is available.
    error: The error result of the operation in case of failure or
      cancellation.
    metadata: Service-specific metadata associated with the operation. It
      typically contains progress information and common metadata such as
      create time. Some services might not provide such metadata. Any method
      that returns a long-running operation should document the metadata type,
      if any.
    name: The server-assigned name, which is only unique within the same
      service that originally returns it. If you use the default HTTP mapping,
      the `name` should be a resource name ending with
      `operations/{unique_id}`.
    response: The normal, successful response of the operation. If the
      original method returns no data on success, such as `Delete`, the
      response is `google.protobuf.Empty`. If the original method is standard
      `Get`/`Create`/`Update`, the response should be the resource. For other
      methods, the response should have the type `XxxResponse`, where `Xxx` is
      the original method name. For example, if the original method name is
      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Service-specific metadata associated with the operation. It typically
    contains progress information and common metadata such as create time.
    Some services might not provide such metadata. Any method that returns a
    long-running operation should document the metadata type, if any.

    Messages:
      AdditionalProperty: An additional property for a MetadataValue object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a MetadataValue object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ResponseValue(_messages.Message):
    r"""The normal, successful response of the operation. If the original
    method returns no data on success, such as `Delete`, the response is
    `google.protobuf.Empty`. If the original method is standard
    `Get`/`Create`/`Update`, the response should be the resource. For other
    methods, the response should have the type `XxxResponse`, where `Xxx` is
    the original method name. For example, if the original method name is
    `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

    Messages:
      AdditionalProperty: An additional property for a ResponseValue object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ResponseValue object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  done = _messages.BooleanField(1)
  error = _messages.MessageField('Status', 2)
  metadata = _messages.MessageField('MetadataValue', 3)
  name = _messages.StringField(4)
  response = _messages.MessageField('ResponseValue', 5)


class OperationMetadata(_messages.Message):
  r"""Represents the metadata of the long-running operation.

  Fields:
    apiVersion: Output only. API version used to start the operation.
    applicationMetadata: Output only. The application delete metadata this
      operation is associated with.
    createTime: Output only. The time the operation was created.
    deploymentGroupMetadata: Output only. The Provision Deployment Group
      Metadata this operation is associated with.
    deploymentMetadata: Output only. The application deployment metadata this
      operation is associated with.
    endTime: Output only. The time the operation finished running.
    generateAssessmentReportMetadata: Output only. The Generate Assessment
      Report Metadata this operation is associated with.
    previewMetadata: Output only. The application preview metadata this
      operation is associated with.
    requestedCancellation: Output only. Identifies whether the user has
      requested cancellation of the operation. Operations that have been
      cancelled successfully have Operation.error value with a
      google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
    statusMessage: Output only. Human readable status of the operation, if
      any.
    target: Output only. The server defined resource path for the target of
      the operation.
    verb: Output only. Name of the verb executed by the operation.
  """

  apiVersion = _messages.StringField(1)
  applicationMetadata = _messages.MessageField('ApplicationOperationMetadata', 2)
  createTime = _messages.StringField(3)
  deploymentGroupMetadata = _messages.MessageField('ProvisionDeploymentGroupOperationMetadata', 4)
  deploymentMetadata = _messages.MessageField('DeploymentOperationMetadata', 5)
  endTime = _messages.StringField(6)
  generateAssessmentReportMetadata = _messages.MessageField('GenerateAssessmentReportOperationMetadata', 7)
  previewMetadata = _messages.MessageField('PreviewOperationMetadata', 8)
  requestedCancellation = _messages.BooleanField(9)
  statusMessage = _messages.StringField(10)
  target = _messages.StringField(11)
  verb = _messages.StringField(12)


class Parameter(_messages.Message):
  r"""Parameter resource.

  Fields:
    key: Required. The key of the parameter.
    value: Optional. The value of the parameter.
  """

  key = _messages.StringField(1)
  value = _messages.MessageField('extra_types.JsonValue', 2)


class Policy(_messages.Message):
  r"""An Identity and Access Management (IAM) policy, which specifies access
  controls for Google Cloud resources. A `Policy` is a collection of
  `bindings`. A `binding` binds one or more `members`, or principals, to a
  single `role`. Principals can be user accounts, service accounts, Google
  groups, and domains (such as G Suite). A `role` is a named list of
  permissions; each `role` can be an IAM predefined role or a user-created
  custom role. For some types of Google Cloud resources, a `binding` can also
  specify a `condition`, which is a logical expression that allows access to a
  resource only if the expression evaluates to `true`. A condition can add
  constraints based on attributes of the request, the resource, or both. To
  learn which resources support conditions in their IAM policies, see the [IAM
  documentation](https://cloud.google.com/iam/help/conditions/resource-
  policies). **JSON example:** ``` { "bindings": [ { "role":
  "roles/resourcemanager.organizationAdmin", "members": [
  "user:mike@example.com", "group:admins@example.com", "domain:google.com",
  "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role":
  "roles/resourcemanager.organizationViewer", "members": [
  "user:eve@example.com" ], "condition": { "title": "expirable access",
  "description": "Does not grant access after Sep 2020", "expression":
  "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag":
  "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: -
  members: - user:mike@example.com - group:admins@example.com -
  domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
  role: roles/resourcemanager.organizationAdmin - members: -
  user:eve@example.com role: roles/resourcemanager.organizationViewer
  condition: title: expirable access description: Does not grant access after
  Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
  etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features,
  see the [IAM documentation](https://cloud.google.com/iam/docs/).

  Fields:
    auditConfigs: Specifies cloud audit logging configuration for this policy.
    bindings: Associates a list of `members`, or principals, with a `role`.
      Optionally, may specify a `condition` that determines how and when the
      `bindings` are applied. Each of the `bindings` must contain at least one
      principal. The `bindings` in a `Policy` can refer to up to 1,500
      principals; up to 250 of these principals can be Google groups. Each
      occurrence of a principal counts towards these limits. For example, if
      the `bindings` grant 50 different roles to `user:alice@example.com`, and
      not to any other principal, then you can add another 1,450 principals to
      the `bindings` in the `Policy`.
    etag: `etag` is used for optimistic concurrency control as a way to help
      prevent simultaneous updates of a policy from overwriting each other. It
      is strongly suggested that systems make use of the `etag` in the read-
      modify-write cycle to perform policy updates in order to avoid race
      conditions: An `etag` is returned in the response to `getIamPolicy`, and
      systems are expected to put that etag in the request to `setIamPolicy`
      to ensure that their change will be applied to the same version of the
      policy. **Important:** If you use IAM Conditions, you must include the
      `etag` field whenever you call `setIamPolicy`. If you omit this field,
      then IAM allows you to overwrite a version `3` policy with a version `1`
      policy, and all of the conditions in the version `3` policy are lost.
    version: Specifies the format of the policy. Valid values are `0`, `1`,
      and `3`. Requests that specify an invalid value are rejected. Any
      operation that affects conditional role bindings must specify version
      `3`. This requirement applies to the following operations: * Getting a
      policy that includes a conditional role binding * Adding a conditional
      role binding to a policy * Changing a conditional role binding in a
      policy * Removing any role binding, with or without a condition, from a
      policy that includes conditions **Important:** If you use IAM
      Conditions, you must include the `etag` field whenever you call
      `setIamPolicy`. If you omit this field, then IAM allows you to overwrite
      a version `3` policy with a version `1` policy, and all of the
      conditions in the version `3` policy are lost. If a policy does not
      include any conditions, operations on that policy may specify any valid
      version or leave the field unset. To learn which resources support
      conditions in their IAM policies, see the [IAM
      documentation](https://cloud.google.com/iam/help/conditions/resource-
      policies).
  """

  auditConfigs = _messages.MessageField('AuditConfig', 1, repeated=True)
  bindings = _messages.MessageField('Binding', 2, repeated=True)
  etag = _messages.BytesField(3)
  version = _messages.IntegerField(4, variant=_messages.Variant.INT32)


class PreviewApplicationRequest(_messages.Message):
  r"""Message for previewing an application.

  Fields:
    serviceAccount: Optional. The email address of the service account to use
      for this preview operation. - If provided, this service account will be
      used to execute the preview process, taking precedence over any
      service_account specified on the Application resource. - The caller must
      have the 'iam.serviceAccounts.actAs' permission on this service account.
      - If this field is omitted, the system will use the 'service_account'
      defined within the Application resource. - We recommend that you provide
      a service account here or on the Application resource. If you don't
      provide a service account, the preview will fail. Format:
      projects/{PROJECT}/serviceAccounts/{EMAIL_ADDRESS}
    workerPool: Optional. The user-specified Worker Pool resource in which the
      Cloud Build job will execute. Format:
      projects/{project}/locations/{location}/workerPools/{workerPoolId} If
      this flag is omitted, the worker pool already defined on the application
      will be used. If no worker pool is defined on the application, the
      default Cloud Build worker pool is used. The worker pool must exist in
      the same region as the application.
  """

  serviceAccount = _messages.StringField(1)
  workerPool = _messages.StringField(2)


class PreviewOperationMetadata(_messages.Message):
  r"""Ephemeral metadata depicting the state of the preview operation.

  Fields:
    previewBuild: Output only. Cloud Build instance UUID associated with the
      preview operation.
    previewLogs: Output only. Location of the preview operation logs in
      `gs://{bucket}/{object}` format.
    previewStep: Output only. The current step of the preview. The possible
      steps a preview may be running as returned by the Infrastructure.
      Manager.
    resources: Details of the Resourcess in the deployment.
  """

  previewBuild = _messages.StringField(1)
  previewLogs = _messages.StringField(2)
  previewStep = _messages.StringField(3)
  resources = _messages.MessageField('Resource', 4, repeated=True)


class ProjectParameters(_messages.Message):
  r"""The ProjectParameters provides the parameters needed to deploy the
  application in the given project.

  Fields:
    apis: Output only. APIs required to be enabled to deploy the application,
      in the form of "*.googleapis.com".
    projectId: Output only. The project ID of the project.
    roles: Output only. IAM roles required by the service account to deploy
      the application in given project.
  """

  apis = _messages.StringField(1, repeated=True)
  projectId = _messages.StringField(2)
  roles = _messages.StringField(3, repeated=True)


class ProjectParametersList(_messages.Message):
  r"""Provides the list of project parameters needed to deploy an application.

  Fields:
    projectParameters: Output only. List of project parameters for the
      application.
  """

  projectParameters = _messages.MessageField('ProjectParameters', 1, repeated=True)


class ProviderVersion(_messages.Message):
  r"""ProviderVersion defines the required version for a provider.

  Fields:
    source: Output only. The provider source in the format:
      [hostname]/[namespace]/[name]. Hostname is optional, and defaults to the
      Terraform registry.
    version: Output only. Version constraint string.
  """

  source = _messages.StringField(1)
  version = _messages.StringField(2)


class ProvisionDeploymentGroupOperationMetadata(_messages.Message):
  r"""Represents the Provision Deployment Group operation metadata.

  Enums:
    DeploymentStepValueValuesEnum: Output only. Current step of deploying
      composite application

  Fields:
    deploymentStep: Output only. Current step of deploying composite
      application
    deploymentUnitProgress: Output only. List of deployment unit deployment
      progress
  """

  class DeploymentStepValueValuesEnum(_messages.Enum):
    r"""Output only. Current step of deploying composite application

    Values:
      DEPLOYMENT_STEP_UNSPECIFIED: Unspecified deployment step.
      GENERATING_TERRAFORM_CONTENT: Generating Terraform content for the
        application.
      DEPLOYING: Deploying the application.
      SUCCEEDED: Operation was successful.
      FAILED: Operation failed.
    """
    DEPLOYMENT_STEP_UNSPECIFIED = 0
    GENERATING_TERRAFORM_CONTENT = 1
    DEPLOYING = 2
    SUCCEEDED = 3
    FAILED = 4

  deploymentStep = _messages.EnumField('DeploymentStepValueValuesEnum', 1)
  deploymentUnitProgress = _messages.MessageField('DeploymentUnitProgress', 2, repeated=True)


class RegisterAppHubApplicationResourcesRequest(_messages.Message):
  r"""Request message for RegisterAppHubApplicationResources method.

  Fields:
    apphubApplication: Required. The name of the AppHub Application. Format:
      projects/{project}/locations/{location}/applications/{application}
    tfstateContent: Optional. The Terraform state (tfstate) content as a raw
      string. For large state files exceeding 10MB, use the
      'tfstate_signed_gcs_uri' field instead.
    tfstateSignedGcsUri: Optional. A securely signed Cloud Storage URI
      pointing to the tfstate file. The URI must be signed to grant the
      service temporary read access to the state file. Application Design
      Center imposes a limit on the maximum size of the state file accessed
      via this URI.
  """

  apphubApplication = _messages.StringField(1)
  tfstateContent = _messages.StringField(2)
  tfstateSignedGcsUri = _messages.StringField(3)


class RemediationStep(_messages.Message):
  r"""Remediation steps that can be taken to rectify the finding.

  Fields:
    note: Optional. Any other note related to the remediation.
    remediationDocumentationUrl: Optional. Remediation documentation URL.
    remediationSteps: Required. A description of the steps that users can take
      to remediate the findings.
  """

  note = _messages.StringField(1)
  remediationDocumentationUrl = _messages.StringField(2)
  remediationSteps = _messages.StringField(3, repeated=True)


class Resource(_messages.Message):
  r"""Status of the Resourcess in the deployment.

  Enums:
    StateValueValuesEnum: Output only. Current state of the resource.

  Fields:
    name: Output only. Identifier. The name of the resource.
    state: Output only. Current state of the resource.
    type: Output only. The type of the resource.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. Current state of the resource.

    Values:
      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.
      DRIFTED: Drift is detected in the resourece state.
      INTENDED: Resource is intended state.
    """
    STATE_UNSPECIFIED = 0
    PLANNED = 1
    IN_PROGRESS = 2
    RECONCILED = 3
    FAILED = 4
    DRIFTED = 5
    INTENDED = 6

  name = _messages.StringField(1)
  state = _messages.EnumField('StateValueValuesEnum', 2)
  type = _messages.StringField(3)


class ResourceType(_messages.Message):
  r"""Represents the type of a resource within a component template.

  Fields:
    caisResource: Output only. The CAIS resource type.
    tfResource: Output only. The Terraform resource type. For example:
      "google_compute_instance".
  """

  caisResource = _messages.StringField(1)
  tfResource = _messages.StringField(2)


class RoleInfo(_messages.Message):
  r"""RoleInfo represents an IAM role along with its origin.

  Fields:
    permissions: Output only. The list of permissions that this role is
      recommended for. This includes only the permissions of this role that
      are part of the recommendation.
    role: Required. IAM role name, such as `roles/editor`.
    systemProvided: Output only. When true, indicates that this role was
      automatically added by Application Design Center. Roles provided by
      users will have this field set to false.
  """

  permissions = _messages.StringField(1, repeated=True)
  role = _messages.StringField(2)
  systemProvided = _messages.BooleanField(3)


class RolesAndApisConfig(_messages.Message):
  r"""Represents configurations required within a specific project to deploy
  the application.

  Fields:
    apis: Optional. APIs required to be enabled in this project for deploying
      the application, in the form of "*.googleapis.com". The maximum number
      of APIs allowed is 500.
    projectId: Required. The project ID to which these configurations apply.
      Format: {project_id}
    roles: Optional. IAM roles required to deploy the application within this
      project. Each role must be a valid IAM role name, such as
      `roles/editor`. The maximum number of roles allowed is 500.
  """

  apis = _messages.MessageField('ApiInfo', 1, repeated=True)
  projectId = _messages.StringField(2)
  roles = _messages.MessageField('RoleInfo', 3, repeated=True)


class RootInputVariable(_messages.Message):
  r"""Input variable of a root module.

  Fields:
    defaultValue: Default value of the input variable.
    value: Value for the input variable.
    variable: Name of the input variable.
    variableType: Type of the input variable.
  """

  defaultValue = _messages.MessageField('extra_types.JsonValue', 1)
  value = _messages.MessageField('extra_types.JsonValue', 2)
  variable = _messages.StringField(3)
  variableType = _messages.StringField(4)


class RootModule(_messages.Message):
  r"""Metadata for a root module.

  Fields:
    components: List of Application Design Center component names associated
      with this root module. For standard app template type components, this
      list will have a single element. For service / workload / asset
      components, this list will contain all such component names.
    dependencies: Dependencies of this root module. The dependency graph of
      root modules must be acyclic.
    id: Identifier of the root module. This is the directory name of the root
      module in the generated terraform which is also same as the
      corresponding component ID.
    inputVariables: List of input variables of this root module.
    outputVariables: List of output variables of this root module.
  """

  components = _messages.StringField(1, repeated=True)
  dependencies = _messages.MessageField('RootModuleDependency', 2, repeated=True)
  id = _messages.StringField(3)
  inputVariables = _messages.MessageField('RootInputVariable', 4, repeated=True)
  outputVariables = _messages.MessageField('RootOutputVariable', 5, repeated=True)


class RootModuleDependency(_messages.Message):
  r"""Root module dependency.

  Fields:
    parameters: Parameters associated with this dependency.
    rootModuleId: Identifier of the root module.
  """

  parameters = _messages.MessageField('Parameter', 1, repeated=True)
  rootModuleId = _messages.StringField(2)


class RootModulesMetadata(_messages.Message):
  r"""Root modules metadata.

  Fields:
    rootModules: List of terraform root modules.
  """

  rootModules = _messages.MessageField('RootModule', 1, repeated=True)


class RootOutputVariable(_messages.Message):
  r"""Output variable of a root module.

  Fields:
    variable: Name of the output variable.
  """

  variable = _messages.StringField(1)


class SCCMetadata(_messages.Message):
  r"""SCC metadata for the assessment finding.

  Fields:
    findingClass: Optional. The SCC finding class. Also known as category.
    findingType: Optional. The SCC finding type.
  """

  findingClass = _messages.StringField(1)
  findingType = _messages.StringField(2)


class SaaSRuntimeContext(_messages.Message):
  r"""SaaS runtime context.

  Fields:
    saasNames: Optional. The SaaS names. Format for each SaaS:
      projects/{project}/locations/{location}/saas/{saas}
  """

  saasNames = _messages.StringField(1, repeated=True)


class Scope(_messages.Message):
  r"""Scope of an application.

  Enums:
    TypeValueValuesEnum: Required. Scope Type.

  Fields:
    type: Required. Scope Type.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Required. Scope Type.

    Values:
      TYPE_UNSPECIFIED: Unspecified type.
      REGIONAL: Regional type.
      GLOBAL: Global type.
    """
    TYPE_UNSPECIFIED = 0
    REGIONAL = 1
    GLOBAL = 2

  type = _messages.EnumField('TypeValueValuesEnum', 1)


class ScoreCard(_messages.Message):
  r"""Score card associated with the report.

  Fields:
    averageScore: Optional. Average score for similar reports.
    maxScore: Required. Maximum score of the report. For example, for a score
      of 75/100, report_score is 75 and max_score is 100.
    minScoreRequired: Optional. Minimum score required to pass assessment.
    reportScore: Required. Calculated score of the report.
  """

  averageScore = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  maxScore = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  minScoreRequired = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  reportScore = _messages.IntegerField(4, variant=_messages.Variant.INT32)


class SerializedApplicationTemplate(_messages.Message):
  r"""Serialized application template.

  Enums:
    CompositionTypeValueValuesEnum: Output only. The composition type of the
      applicationTemplate: STANDARD OR COMPOSITE.
    IacFormatValueValuesEnum: Optional. The IaC format of the application
      template.

  Fields:
    apphubApplicationParameters: Optional. The App Hub application parameters.
    applicationParameters: Optional. Parameters to apply to all components in
      the application template.
    components: Optional. The application template components.
    compositionType: Output only. The composition type of the
      applicationTemplate: STANDARD OR COMPOSITE.
    description: Optional. The application template description.
    displayName: Optional. The application template display name.
    hasGlobalResource: Output only. Whether the application template is
      compatible with regional scope.
    iacFormat: Optional. The IaC format of the application template.
    rootInputVariables: Output only. Root level input variables of the
      application template.
    rootOutputVariables: Output only. Root level output variables of the
      application template.
    saasRuntimeContext: Optional. SaaS runtime context for the application
      template.
    serializedPolicies: Output only. Policies of the application template.
    uri: Optional. The application template URI.
  """

  class CompositionTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The composition type of the applicationTemplate: STANDARD
    OR COMPOSITE.

    Values:
      APPLICATION_COMPOSITION_TYPE_UNSPECIFIED: ApplicationCompositionType is
        UNSPECIFIED.
      STANDARD: ApplicationCompositionType is STANDARD. The
        applicationTemplate or application is composed of components only of
        type service/workload/asset and has a single root module in terraform
        code.
      COMPOSITE: ApplicationCompositionType is COMPOSITE. The template is
        composed of STANDARD applicationTemplate(s) and might be having
        multiple root modules in terraform code.
    """
    APPLICATION_COMPOSITION_TYPE_UNSPECIFIED = 0
    STANDARD = 1
    COMPOSITE = 2

  class IacFormatValueValuesEnum(_messages.Enum):
    r"""Optional. The IaC format of the application template.

    Values:
      IAC_FORMAT_UNSPECIFIED: IaC format is unspecified.
      TERRAFORM: IaC format is Terraform.
      HELM: IaC format is Helm.
    """
    IAC_FORMAT_UNSPECIFIED = 0
    TERRAFORM = 1
    HELM = 2

  apphubApplicationParameters = _messages.MessageField('AppHubApplicationParameters', 1)
  applicationParameters = _messages.MessageField('Parameter', 2, repeated=True)
  components = _messages.MessageField('SerializedComponent', 3, repeated=True)
  compositionType = _messages.EnumField('CompositionTypeValueValuesEnum', 4)
  description = _messages.StringField(5)
  displayName = _messages.StringField(6)
  hasGlobalResource = _messages.BooleanField(7)
  iacFormat = _messages.EnumField('IacFormatValueValuesEnum', 8)
  rootInputVariables = _messages.MessageField('ComponentVariable', 9, repeated=True)
  rootOutputVariables = _messages.MessageField('ComponentVariable', 10, repeated=True)
  saasRuntimeContext = _messages.MessageField('SaaSRuntimeContext', 11)
  serializedPolicies = _messages.MessageField('SerializedPolicy', 12, repeated=True)
  uri = _messages.StringField(13)


class SerializedComponent(_messages.Message):
  r"""Serialized component.

  Fields:
    apis: Optional. APIs required to be enabled to deploy the component, in
      the form of "*.googleapis.com".
    applicationInfo: Optional. The application associated with the component.
    componentParameterSchema: Output only. The component parameter schema,
      which includes possible parameter values.
    connections: Optional. The component connections.
    connectionsParameters: Output only. The connection parameters of the
      component.
    displayName: Optional. The component display name.
    parameters: Optional. The component parameters.
    roles: Optional. IAM roles required by the service account to deploy the
      component.
    sharedTemplateRevisionUri: Optional. The shared template used to generate
      the component.
    uri: Optional. The component URI.
    useAsRootModule: Optional. Whether the component is exported as a separate
      terraform root module in a composite application template. If this is
      false, then native components will be exported as a submodule of a
      separate terraform root module.
  """

  apis = _messages.StringField(1, repeated=True)
  applicationInfo = _messages.MessageField('ComponentApplicationInfo', 2)
  componentParameterSchema = _messages.MessageField('ComponentParameterSchema', 3, repeated=True)
  connections = _messages.MessageField('SerializedConnection', 4, repeated=True)
  connectionsParameters = _messages.MessageField('ConnectionParameters', 5, repeated=True)
  displayName = _messages.StringField(6)
  parameters = _messages.MessageField('Parameter', 7, repeated=True)
  roles = _messages.StringField(8, repeated=True)
  sharedTemplateRevisionUri = _messages.StringField(9)
  uri = _messages.StringField(10)
  useAsRootModule = _messages.BooleanField(11)


class SerializedConnection(_messages.Message):
  r"""Serialized connection.

  Fields:
    destinationComponentParameters: Optional. The parameters of the connection
      associated with the destination component.
    destinationComponentUri: Optional. The destination component URI used to
      generate the connection.
    sourceComponentParameters: Optional. The parameters of the connection
      associated with the source component.
    uri: Optional. The connection URI.
  """

  destinationComponentParameters = _messages.MessageField('Parameter', 1, repeated=True)
  destinationComponentUri = _messages.StringField(2)
  sourceComponentParameters = _messages.MessageField('Parameter', 3, repeated=True)
  uri = _messages.StringField(4)


class SerializedPolicy(_messages.Message):
  r"""Serialized policy.

  Enums:
    PolicyTypeValueValuesEnum: Required. Policy type will be used to determine
      the domain of the policy.

  Fields:
    applyConditions: Optional. The serialized policy apply conditions.
    description: Optional. The serialized policy description. At most 2048
      characters.
    displayName: Optional. The serialized policy display name. The number of
      characters should be less than 128 characters.
    policyRevisionUri: Optional. URI of the policy revision.
    policyType: Required. Policy type will be used to determine the domain of
      the policy.
    policyUri: Optional. URI of the policy.
    uri: Required. The uri of the policy in application template. Format: `pro
      jects/{project}/locations/{location}/spaces/{space}/applicationTemplates
      /{application_template}/policies/{policy}`
  """

  class PolicyTypeValueValuesEnum(_messages.Enum):
    r"""Required. Policy type will be used to determine the domain of the
    policy.

    Values:
      POLICY_TYPE_UNSPECIFIED: Default.
      COMPLIANCE_FRAMEWORK: Compliance framework policy.
    """
    POLICY_TYPE_UNSPECIFIED = 0
    COMPLIANCE_FRAMEWORK = 1

  applyConditions = _messages.MessageField('ApplyCondition', 1, repeated=True)
  description = _messages.StringField(2)
  displayName = _messages.StringField(3)
  policyRevisionUri = _messages.StringField(4)
  policyType = _messages.EnumField('PolicyTypeValueValuesEnum', 5)
  policyUri = _messages.StringField(6)
  uri = _messages.StringField(7)


class SetIamPolicyRequest(_messages.Message):
  r"""Request message for `SetIamPolicy` method.

  Fields:
    policy: REQUIRED: The complete policy to be applied to the `resource`. The
      size of the policy is limited to a few 10s of KB. An empty policy is a
      valid policy but certain Google Cloud services (such as Projects) might
      reject them.
    updateMask: OPTIONAL: A FieldMask specifying which fields of the policy to
      modify. Only the fields in the mask will be modified. If no mask is
      provided, the following default mask is used: `paths: "bindings, etag"`
  """

  policy = _messages.MessageField('Policy', 1)
  updateMask = _messages.StringField(2)


class Share(_messages.Message):
  r"""A catalog share between spaces.

  Enums:
    StateValueValuesEnum: Output only. The state of the share.

  Fields:
    createTime: Output only. The share creation timestamp.
    destinationSpace: Required. The space resource path to which the catalog
      is shared. Format is
      `projects/$project/locations/$location/spaces/$space`
    name: Identifier. The share name in the following format: `projects/$proje
      ct/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`
    state: Output only. The state of the share.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. The state of the share.

    Values:
      STATE_UNSPECIFIED: The state of the share is unknown.
      IN_SYNC: The share is in sync with the shared template catalog.
      OUT_OF_SYNC: The share is out of sync with the shared template catalog.
    """
    STATE_UNSPECIFIED = 0
    IN_SYNC = 1
    OUT_OF_SYNC = 2

  createTime = _messages.StringField(1)
  destinationSpace = _messages.StringField(2)
  name = _messages.StringField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)


class SharedTemplate(_messages.Message):
  r"""A read-only template that is shared with a space.

  Enums:
    TemplateCategoryValueValuesEnum: Required. The category of the template.
    TypeValueValuesEnum: Optional. The Application Design Center assembly
      template type.

  Fields:
    createTime: Output only. The shared template creation timestamp.
    description: Optional. The shared template description.
    displayName: Optional. The shared template display name.
    latestRevisionId: Output only. Latest revision of the shared template.
    name: Identifier. The shared template name. `projects/$project/locations/$
      location/spaces/$space/sharedTemplates/$sharedTemplate`
    originTemplate: Output only. The origin template of the shared template.
    templateCategory: Required. The category of the template.
    type: Optional. The Application Design Center assembly template type.
    updateTime: Output only. The shared template update timestamp.
  """

  class TemplateCategoryValueValuesEnum(_messages.Enum):
    r"""Required. The category of the template.

    Values:
      TEMPLATE_CATEGORY_UNSPECIFIED: Unspecified category.
      COMPONENT_TEMPLATE: Component template.
      APPLICATION_TEMPLATE: Application template.
      COMPOSITE_SOLUTION_TEMPLATE: Imported as a single, complex unit without
        disassembling into components.
      INSTANCE_TEMPLATE: Instance template.
    """
    TEMPLATE_CATEGORY_UNSPECIFIED = 0
    COMPONENT_TEMPLATE = 1
    APPLICATION_TEMPLATE = 2
    COMPOSITE_SOLUTION_TEMPLATE = 3
    INSTANCE_TEMPLATE = 4

  class TypeValueValuesEnum(_messages.Enum):
    r"""Optional. The Application Design Center assembly template type.

    Values:
      TEMPLATE_TYPE_UNSPECIFIED: Default.
      SERVICE: A service template is an App Hub service.
      WORKLOAD: A workload template is an App Hub workload.
      ASSET: An asset template can be used to provision resources that are not
        services or workloads.
      APPLICATION: An application template is a composition of
        workload/service/asset templates.
      JSS_SOLUTION: A Jumpstart Solution template.
      SERVICE_DATA_SOURCE: A service data source template.
      HELM_APPLICATION: A helm chart based template.
      STANDARD_APPLICATION_TEMPLATE: A standard application template.
      COMPOSITE_APPLICATION_TEMPLATE: A composite application template.
      HELM_CHART: A helm chart based template.
    """
    TEMPLATE_TYPE_UNSPECIFIED = 0
    SERVICE = 1
    WORKLOAD = 2
    ASSET = 3
    APPLICATION = 4
    JSS_SOLUTION = 5
    SERVICE_DATA_SOURCE = 6
    HELM_APPLICATION = 7
    STANDARD_APPLICATION_TEMPLATE = 8
    COMPOSITE_APPLICATION_TEMPLATE = 9
    HELM_CHART = 10

  createTime = _messages.StringField(1)
  description = _messages.StringField(2)
  displayName = _messages.StringField(3)
  latestRevisionId = _messages.StringField(4)
  name = _messages.StringField(5)
  originTemplate = _messages.StringField(6)
  templateCategory = _messages.EnumField('TemplateCategoryValueValuesEnum', 7)
  type = _messages.EnumField('TypeValueValuesEnum', 8)
  updateTime = _messages.StringField(9)


class SharedTemplateRevision(_messages.Message):
  r"""A read-only template revision that is shared with a space.

  Enums:
    TemplateCategoryValueValuesEnum: Output only. The category of the
      template.
    TypeValueValuesEnum: Optional. The Application Design Center assembly
      template type.

  Messages:
    AnnotationsValue: Optional. The annotations of the shared template
      revision. Key is the annotation name. Value is the annotation value.

  Fields:
    annotations: Optional. The annotations of the shared template revision.
      Key is the annotation name. Value is the annotation value.
    applicationTemplateRevision: Output only. The serialized application
      template revision.
    applicationTemplateRevisionSource: Optional. The application template
      revision source.
    createTime: Output only. The shared template revision creation timestamp.
    description: Optional. The shared template revision description.
    developerConnectSourceConfig: Optional. Configuration for fetching content
      from source code repository such as GitHub or Bitbucket through
      Developer Connect.
    gcsSourceUri: Optional. Deprecated: Added new field tf_module_gcs_uri. The
      Cloud Storage URI, which must be in the format gs://[bucket] or
      gs://[bucket]/[object].
    gitSource: Optional. The git source.
    helmChartMetadata: Output only. The helm chart metadata.
    inferredMetadata: Output only. Metadata that was automatically inferred
      from the template content.
    logicalProducts: Output only. The Product Main logical product type
      information.
    name: Identifier. The shared template revision name. $sharedTemplate is a
      server-generated UUID. `projects/$project/locations/$location/spaces/$sp
      ace/sharedTemplates/$sharedTemplate/revisions/$revision`
    ociRepo: Optional. The Open Container Initiative (OCI) repo source that
      contains helm charts.
    originTemplateRevision: Output only. The shared template revision refers
      to the following catalog template revision.
    resourceTypes: Output only. The resource types present in the template
      revision.
    sharedTemplateMetadata: Output only. The shared template metadata.
    templateCategory: Output only. The category of the template.
    type: Optional. The Application Design Center assembly template type.
  """

  class TemplateCategoryValueValuesEnum(_messages.Enum):
    r"""Output only. The category of the template.

    Values:
      TEMPLATE_CATEGORY_UNSPECIFIED: Unspecified category.
      COMPONENT_TEMPLATE: Component template.
      APPLICATION_TEMPLATE: Application template.
      COMPOSITE_SOLUTION_TEMPLATE: Imported as a single, complex unit without
        disassembling into components.
      INSTANCE_TEMPLATE: Instance template.
    """
    TEMPLATE_CATEGORY_UNSPECIFIED = 0
    COMPONENT_TEMPLATE = 1
    APPLICATION_TEMPLATE = 2
    COMPOSITE_SOLUTION_TEMPLATE = 3
    INSTANCE_TEMPLATE = 4

  class TypeValueValuesEnum(_messages.Enum):
    r"""Optional. The Application Design Center assembly template type.

    Values:
      TEMPLATE_TYPE_UNSPECIFIED: Default.
      SERVICE: A service template is an App Hub service.
      WORKLOAD: A workload template is an App Hub workload.
      ASSET: An asset template can be used to provision resources that are not
        services or workloads.
      APPLICATION: An application template is a composition of
        workload/service/asset templates.
      JSS_SOLUTION: A Jumpstart Solution template.
      SERVICE_DATA_SOURCE: A service data source template.
      HELM_APPLICATION: A helm chart based template.
      STANDARD_APPLICATION_TEMPLATE: A standard application template.
      COMPOSITE_APPLICATION_TEMPLATE: A composite application template.
      HELM_CHART: A helm chart based template.
    """
    TEMPLATE_TYPE_UNSPECIFIED = 0
    SERVICE = 1
    WORKLOAD = 2
    ASSET = 3
    APPLICATION = 4
    JSS_SOLUTION = 5
    SERVICE_DATA_SOURCE = 6
    HELM_APPLICATION = 7
    STANDARD_APPLICATION_TEMPLATE = 8
    COMPOSITE_APPLICATION_TEMPLATE = 9
    HELM_CHART = 10

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AnnotationsValue(_messages.Message):
    r"""Optional. The annotations of the shared template revision. Key is the
    annotation name. Value is the annotation value.

    Messages:
      AdditionalProperty: An additional property for a AnnotationsValue
        object.

    Fields:
      additionalProperties: Additional properties of type AnnotationsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AnnotationsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  annotations = _messages.MessageField('AnnotationsValue', 1)
  applicationTemplateRevision = _messages.MessageField('SerializedApplicationTemplate', 2)
  applicationTemplateRevisionSource = _messages.StringField(3)
  createTime = _messages.StringField(4)
  description = _messages.StringField(5)
  developerConnectSourceConfig = _messages.MessageField('DeveloperConnectSourceConfig', 6)
  gcsSourceUri = _messages.StringField(7)
  gitSource = _messages.MessageField('GitSource', 8)
  helmChartMetadata = _messages.MessageField('HelmChartMetadata', 9)
  inferredMetadata = _messages.MessageField('InferredMetadata', 10)
  logicalProducts = _messages.MessageField('LogicalProduct', 11, repeated=True)
  name = _messages.StringField(12)
  ociRepo = _messages.MessageField('OciRepo', 13)
  originTemplateRevision = _messages.StringField(14)
  resourceTypes = _messages.MessageField('ResourceType', 15, repeated=True)
  sharedTemplateMetadata = _messages.MessageField('TFBlueprintMetadata', 16)
  templateCategory = _messages.EnumField('TemplateCategoryValueValuesEnum', 17)
  type = _messages.EnumField('TypeValueValuesEnum', 18)


class SkippedDomain(_messages.Message):
  r"""Domains skipped during the best practice assessment.

  Enums:
    SkipReasonValueValuesEnum: Output only. Reason for skipping the domain
      from assessment.

  Fields:
    domain: Output only. Details of the domain skipped.
    skipReason: Output only. Reason for skipping the domain from assessment.
  """

  class SkipReasonValueValuesEnum(_messages.Enum):
    r"""Output only. Reason for skipping the domain from assessment.

    Values:
      REASON_UNSPECIFIED: No reason specified.
      UNAVAILABLE: Domain is unavailable.
      FAILURE: Domain assessment failed.
      TIMEOUT: Domain assessment timed out.
    """
    REASON_UNSPECIFIED = 0
    UNAVAILABLE = 1
    FAILURE = 2
    TIMEOUT = 3

  domain = _messages.MessageField('Domain', 1)
  skipReason = _messages.EnumField('SkipReasonValueValuesEnum', 2)


class Space(_messages.Message):
  r"""Space is a top level resource for managing teams building applications
  through Application Design Center.

  Messages:
    TagsValue: Optional. Input only. Immutable. Tags are key/values bound to
      space resource. Example: ``` "123/environment": "production"
      "123/costCenter": "marketing" ``` For more information on tag creation
      and management, see https://cloud.google.com/resource-
      manager/docs/tags/tags-overview.

  Fields:
    createTime: Output only. Space creation timestamp.
    description: Optional. Description for the space.
    displayName: Optional. Display name for the space.
    enableGcpSharedTemplates: Optional. Flag to enable Google opinionated
      shared templates.
    gcsBucket: Optional. An existing Google Cloud Storage bucket that you want
      to use instead of creating a new bucket during Application Design Center
      setup. If not provided, a default bucket is created during setup. The
      bucket must exist in the same project as the space. If the bucket name
      does not exist in the same project as the space, the request fails with
      an INVALID_ARGUMENT error. If you do not have access to the bucket, the
      request fails with a PERMISSION_DENIED error. Format: {$bucket_name} For
      example, if the Cloud Storage bucket URI is gs:\/\/{$bucket_name}, the
      format is {$bucket_name}.
    name: Identifier. The space name.
    tags: Optional. Input only. Immutable. Tags are key/values bound to space
      resource. Example: ``` "123/environment": "production" "123/costCenter":
      "marketing" ``` For more information on tag creation and management, see
      https://cloud.google.com/resource-manager/docs/tags/tags-overview.
    updateTime: Output only. Space update timestamp
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class TagsValue(_messages.Message):
    r"""Optional. Input only. Immutable. Tags are key/values bound to space
    resource. Example: ``` "123/environment": "production" "123/costCenter":
    "marketing" ``` For more information on tag creation and management, see
    https://cloud.google.com/resource-manager/docs/tags/tags-overview.

    Messages:
      AdditionalProperty: An additional property for a TagsValue object.

    Fields:
      additionalProperties: Additional properties of type TagsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a TagsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  createTime = _messages.StringField(1)
  description = _messages.StringField(2)
  displayName = _messages.StringField(3)
  enableGcpSharedTemplates = _messages.BooleanField(4)
  gcsBucket = _messages.StringField(5)
  name = _messages.StringField(6)
  tags = _messages.MessageField('TagsValue', 7)
  updateTime = _messages.StringField(8)


class StandardQueryParameters(_messages.Message):
  r"""Query parameters accepted by all methods.

  Enums:
    FXgafvValueValuesEnum: V1 error format.
    AltValueValuesEnum: Data format for response.

  Fields:
    f__xgafv: V1 error format.
    access_token: OAuth access token.
    alt: Data format for response.
    callback: JSONP
    fields: Selector specifying which fields to include in a partial response.
    key: API key. Your API key identifies your project and provides you with
      API access, quota, and reports. Required unless you provide an OAuth 2.0
      token.
    oauth_token: OAuth 2.0 token for the current user.
    prettyPrint: Returns response with indentations and line breaks.
    quotaUser: Available to use for quota purposes for server-side
      applications. Can be any arbitrary string assigned to a user, but should
      not exceed 40 characters.
    trace: A tracing token of the form "token:<tokenid>" to include in api
      requests.
    uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
    upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
  """

  class AltValueValuesEnum(_messages.Enum):
    r"""Data format for response.

    Values:
      json: Responses with Content-Type of application/json
      media: Media download with context-dependent Content-Type
      proto: Responses with Content-Type of application/x-protobuf
    """
    json = 0
    media = 1
    proto = 2

  class FXgafvValueValuesEnum(_messages.Enum):
    r"""V1 error format.

    Values:
      _1: v1 error format
      _2: v2 error format
    """
    _1 = 0
    _2 = 1

  f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
  access_token = _messages.StringField(2)
  alt = _messages.EnumField('AltValueValuesEnum', 3, default='json')
  callback = _messages.StringField(4)
  fields = _messages.StringField(5)
  key = _messages.StringField(6)
  oauth_token = _messages.StringField(7)
  prettyPrint = _messages.BooleanField(8, default=True)
  quotaUser = _messages.StringField(9)
  trace = _messages.StringField(10)
  uploadType = _messages.StringField(11)
  upload_protocol = _messages.StringField(12)


class Status(_messages.Message):
  r"""The `Status` type defines a logical error model that is suitable for
  different programming environments, including REST APIs and RPC APIs. It is
  used by [gRPC](https://github.com/grpc). Each `Status` message contains
  three pieces of data: error code, error message, and error details. You can
  find out more about this error model and how to work with it in the [API
  Design Guide](https://cloud.google.com/apis/design/errors).

  Messages:
    DetailsValueListEntry: A DetailsValueListEntry object.

  Fields:
    code: The status code, which should be an enum value of google.rpc.Code.
    details: A list of messages that carry the error details. There is a
      common set of message types for APIs to use.
    message: A developer-facing error message, which should be in English. Any
      user-facing error message should be localized and sent in the
      google.rpc.Status.details field, or localized by the client.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DetailsValueListEntry(_messages.Message):
    r"""A DetailsValueListEntry object.

    Messages:
      AdditionalProperty: An additional property for a DetailsValueListEntry
        object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DetailsValueListEntry object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  code = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True)
  message = _messages.StringField(3)


class SyncShareRequest(_messages.Message):
  r"""Message for syncing a share of a catalog."""


class TFBlueprintMetadata(_messages.Message):
  r"""Terraform input and output metadata.

  Fields:
    apis: Output only. APIs that must be enabled to deploy the template, in
      the form of "compute.googleapis.com".
    connections: Output only. Union of all the Terraform input connections.
    deploymentDuration: Optional. The time estimate for deploying the
      blueprint.
    iconUri: Output only. The icon URI for the blueprint.
    providerVersions: Output only. Provider versions required to deploy the
      blueprint.
    roles: Output only. IAM roles required by the service account deploying
      the template, in the form of "roles/compute.admin".
    terraformInput: Output only. Terraform inputs.
    terraformOutput: Output only. Terraform outputs.
    uiMetadata: Output only. UI metadata for the blueprint.
  """

  apis = _messages.StringField(1, repeated=True)
  connections = _messages.MessageField('TerraformInputConnections', 2, repeated=True)
  deploymentDuration = _messages.StringField(3)
  iconUri = _messages.StringField(4)
  providerVersions = _messages.MessageField('ProviderVersion', 5, repeated=True)
  roles = _messages.StringField(6, repeated=True)
  terraformInput = _messages.MessageField('TerraformInput', 7, repeated=True)
  terraformOutput = _messages.MessageField('TerraformOutput', 8, repeated=True)
  uiMetadata = _messages.MessageField('TerraformBlueprintUiMetadata', 9)


class TemplateConnections(_messages.Message):
  r"""TemplateConnections

  Fields:
    source: Required. Source of the connection.
    spec: Required. Connection specifications.
  """

  source = _messages.MessageField('ConnectionSource', 1)
  spec = _messages.MessageField('ConnectionSpec', 2)


class TemplateInfo(_messages.Message):
  r"""TemplateInfo provides the actuation tool information.

  Fields:
    actuationTool: Required. IaCFormatInfo defines the actuation tool used to
      provision the Template.
  """

  actuationTool = _messages.MessageField('IacFormatInfo', 1)


class TemplateRequirements(_messages.Message):
  r"""TemplateRequirements defines the roles required and the associated
  services that need to be enabled to provision Template resources.

  Fields:
    providerVersions: Required. Required provider versions.
    roles: Required. All roles required for the component
  """

  providerVersions = _messages.MessageField('ProviderVersion', 1, repeated=True)
  roles = _messages.MessageField('TemplateRoles', 2, repeated=True)


class TemplateRoles(_messages.Message):
  r"""Template Roles provide the level and roles

  Fields:
    level: Required. Level of the role.
    roles: Required. List of roles.
  """

  level = _messages.StringField(1)
  roles = _messages.StringField(2, repeated=True)


class TemplateSchema(_messages.Message):
  r"""TemplateSchema provides the input variables lists and connection
  information.

  Fields:
    variables: Required. All defined variables for the Template
  """

  variables = _messages.MessageField('TemplateVariable', 1, repeated=True)


class TemplateUi(_messages.Message):
  r"""TemplateUi defines the UI related information for the Template.

  Fields:
    input: Required. The top-level input section that defines the list of
      variables and their sections on the deployment page.
    runtime: Optional. The top-level output section that defines the list of
      outputs and their visibility on the deployment page.
  """

  input = _messages.MessageField('TemplateUiInput', 1)
  runtime = _messages.MessageField('TemplateUiOutput', 2)


class TemplateUiInput(_messages.Message):
  r"""TemplateUiInput defines the list of variables and their sections on the
  deployment page.

  Messages:
    VariablesValue: Required. variables is a map defining all inputs on the
      UI.

  Fields:
    variables: Required. variables is a map defining all inputs on the UI.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class VariablesValue(_messages.Message):
    r"""Required. variables is a map defining all inputs on the UI.

    Messages:
      AdditionalProperty: An additional property for a VariablesValue object.

    Fields:
      additionalProperties: Additional properties of type VariablesValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a VariablesValue object.

      Fields:
        key: Name of the additional property.
        value: A DisplayVariable attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('DisplayVariable', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  variables = _messages.MessageField('VariablesValue', 1)


class TemplateUiOutput(_messages.Message):
  r"""TemplateUiOutput defines the list of outputs and their visibility on the
  deployment page.

  Messages:
    OutputsValue: Required. outputs is a map defining all outputs on the UI.

  Fields:
    outputMessage: Optional. Message to be displayed in the UI.
    outputs: Required. outputs is a map defining all outputs on the UI.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class OutputsValue(_messages.Message):
    r"""Required. outputs is a map defining all outputs on the UI.

    Messages:
      AdditionalProperty: An additional property for a OutputsValue object.

    Fields:
      additionalProperties: Additional properties of type OutputsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a OutputsValue object.

      Fields:
        key: Name of the additional property.
        value: A TemplateUiOutputDisplayVariable attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('TemplateUiOutputDisplayVariable', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  outputMessage = _messages.StringField(1)
  outputs = _messages.MessageField('OutputsValue', 2)


class TemplateUiOutputDisplayVariable(_messages.Message):
  r"""Additional display specific Template pertaining to a particular output
  variable.

  Enums:
    VisibilityValueValuesEnum: Required. Visibility of the output.

  Fields:
    visibility: Required. Visibility of the output.
  """

  class VisibilityValueValuesEnum(_messages.Enum):
    r"""Required. Visibility of the output.

    Values:
      DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED: Default
      DISPLAY_VARIABLE_VISIBILITY_ROOT: Expose output as root module output.
    """
    DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED = 0
    DISPLAY_VARIABLE_VISIBILITY_ROOT = 1

  visibility = _messages.EnumField('VisibilityValueValuesEnum', 1)


class TemplateVariable(_messages.Message):
  r"""TemplateTerraform inputs.

  Fields:
    connections: Required. Terraform input connections.
    name: Required. Input variable name present in Terraform.
  """

  connections = _messages.MessageField('TemplateConnections', 1, repeated=True)
  name = _messages.StringField(2)


class TerraformBlueprintUiMetadata(_messages.Message):
  r"""Terraform blueprint UI metadata.

  Fields:
    terraformUiInput: Output only. Terraform UI inputs.
    terraformUiOutput: Output only. Terraform UI outputs.
  """

  terraformUiInput = _messages.MessageField('TerraformUiInput', 1)
  terraformUiOutput = _messages.MessageField('TerraformUiOutput', 2)


class TerraformConfig(_messages.Message):
  r"""Configuration for exporting a resource as Terraform IAC.

  Fields:
    tfModuleConfig: Optional. Configuration on how terraform module should be
      handled during export.
  """

  tfModuleConfig = _messages.MessageField('TerraformModuleConfig', 1)


class TerraformError(_messages.Message):
  r"""Errors encountered during actuation using Terraform

  Fields:
    error: Output only. Original error response from underlying Google API, if
      available.
    errorDescription: A human-readable error description.
    httpResponseCode: 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.
    resourceAddress: Address of the resource associated with the error, e.g.
      `google_compute_network.vpc_network`.
  """

  error = _messages.MessageField('Status', 1)
  errorDescription = _messages.StringField(2)
  httpResponseCode = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  resourceAddress = _messages.StringField(4)


class TerraformInput(_messages.Message):
  r"""Terraform inputs.

  Fields:
    connections: Output only. Terraform input connections.
    defaultValue: Output only. The default value of the Terraform input
      variable.
    description: Output only. Terraform variable description.
    isRequired: Output only. Indicates if input is required.
    terraformInputVariable: Output only. Input variable name present in
      Terraform.
    type: Output only. The Terraform input data type.
  """

  connections = _messages.MessageField('TerraformInputConnections', 1, repeated=True)
  defaultValue = _messages.MessageField('extra_types.JsonValue', 2)
  description = _messages.StringField(3)
  isRequired = _messages.BooleanField(4)
  terraformInputVariable = _messages.StringField(5)
  type = _messages.StringField(6)


class TerraformInputConnections(_messages.Message):
  r"""TerraformInputConnections

  Fields:
    cftTemplateUri: Output only. List of other templates that can be connected
      to.
    cftTemplateVersion: Output only. Version of the other template that can be
      connected to.
    inputPath: Output only. Input path of the other template that can be
      connected to.
    outputVar: Output only. Output variable name present in Terraform.
  """

  cftTemplateUri = _messages.StringField(1)
  cftTemplateVersion = _messages.StringField(2)
  inputPath = _messages.StringField(3)
  outputVar = _messages.StringField(4)


class TerraformModuleConfig(_messages.Message):
  r"""Configuration on how terraform module should be handled during export.

  Fields:
    gitProxyEnabled: Optional. This is typically only valid for 3P components
      if ingested via devconnect URI. Typically, for 1P components, since they
      are sourced from public git repos, this field is not applicable.
    localReferencesEnabled: Optional. If set, all the dependent modules will
      be downloaded from the target repository and referenced locally.
  """

  gitProxyEnabled = _messages.BooleanField(1)
  localReferencesEnabled = _messages.BooleanField(2)


class TerraformOutput(_messages.Message):
  r"""Terraform outputs.

  Fields:
    description: Output only. Description of the Terraform varaiable.
    terraformOutputVariable: Output only. Output variable name present in
      Terraform.
    type: Output only. Type of Terraform output.
  """

  description = _messages.StringField(1)
  terraformOutputVariable = _messages.StringField(2)
  type = _messages.MessageField('extra_types.JsonValue', 3)


class TerraformUiInput(_messages.Message):
  r"""Terraform blueprint UI input.

  Messages:
    TerraformUiInputsValue: Output only. Terraform UI inputs.

  Fields:
    terraformUiInputs: Output only. Terraform UI inputs.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class TerraformUiInputsValue(_messages.Message):
    r"""Output only. Terraform UI inputs.

    Messages:
      AdditionalProperty: An additional property for a TerraformUiInputsValue
        object.

    Fields:
      additionalProperties: Additional properties of type
        TerraformUiInputsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a TerraformUiInputsValue object.

      Fields:
        key: Name of the additional property.
        value: A TerraformUiInputDisplayVariable attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('TerraformUiInputDisplayVariable', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  terraformUiInputs = _messages.MessageField('TerraformUiInputsValue', 1)


class TerraformUiInputDisplayVariable(_messages.Message):
  r"""Terraform blueprint UI input display variable.

  Messages:
    PropertiesValue: Output only. A map that defines all fields of the input
      variable.

  Fields:
    alternateDefaults: Output only. Alternate defaults for the input.
    displayName: Output only. Display name of the input.
    enumValueLabels: Output only. Labels for enum values. Values must be UTF-8
      text with no markup, and at most 64 characters.
    level: Output only. Indicates the "advanced" level of the input property.
      Level 0 (default) will always be shown. Level 1 corresponds to one
      expansion (user clicks "show advanced options" or "more options").
      Higher levels correspond to further expansions, or they may be collapsed
      to level 1 by the UI implementation. Optional.
    max: Output only. Maximum value for numeric types.
    min: Output only. Minimum value for numeric types.
    properties: Output only. A map that defines all fields of the input
      variable.
    regexValidation: Output only. Regex based validation rules for the
      variable.
    subtext: Output only. Property subtext, displayed below the title.
    title: Output only. Title of the input.
    toggleUsingVariables: Output only. Variables used to toggle the display of
      another variable.
    validation: Output only. Text describing the validation rules for the
      property. Typically shown after an invalid input. Optional. UTF-8 text.
      No markup. At most 128 characters.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PropertiesValue(_messages.Message):
    r"""Output only. A map that defines all fields of the input variable.

    Messages:
      AdditionalProperty: An additional property for a PropertiesValue object.

    Fields:
      additionalProperties: Additional properties of type PropertiesValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a PropertiesValue object.

      Fields:
        key: Name of the additional property.
        value: A TerraformUiInputDisplayVariable attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('TerraformUiInputDisplayVariable', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  alternateDefaults = _messages.MessageField('AlternateDefault', 1, repeated=True)
  displayName = _messages.StringField(2)
  enumValueLabels = _messages.MessageField('ValueLabel', 3, repeated=True)
  level = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  max = _messages.FloatField(5, variant=_messages.Variant.FLOAT)
  min = _messages.FloatField(6, variant=_messages.Variant.FLOAT)
  properties = _messages.MessageField('PropertiesValue', 7)
  regexValidation = _messages.StringField(8)
  subtext = _messages.StringField(9)
  title = _messages.StringField(10)
  toggleUsingVariables = _messages.MessageField('DisplayVariableToggle', 11, repeated=True)
  validation = _messages.StringField(12)


class TerraformUiOutput(_messages.Message):
  r"""Terraform blueprint UI output.

  Messages:
    TerraformUiOutputsValue: Output only. Visibility of the output.

  Fields:
    outputMessage: Output only. Message to be displayed in the UI.
    terraformUiOutputs: Output only. Visibility of the output.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class TerraformUiOutputsValue(_messages.Message):
    r"""Output only. Visibility of the output.

    Messages:
      AdditionalProperty: An additional property for a TerraformUiOutputsValue
        object.

    Fields:
      additionalProperties: Additional properties of type
        TerraformUiOutputsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a TerraformUiOutputsValue object.

      Fields:
        key: Name of the additional property.
        value: A TerraformUiOutputDisplay attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('TerraformUiOutputDisplay', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  outputMessage = _messages.StringField(1)
  terraformUiOutputs = _messages.MessageField('TerraformUiOutputsValue', 2)


class TerraformUiOutputDisplay(_messages.Message):
  r"""Terraform blueprint UI output display.

  Enums:
    VisibilityValueValuesEnum: Output only. Visibility of the output.

  Fields:
    visibility: Output only. Visibility of the output.
  """

  class VisibilityValueValuesEnum(_messages.Enum):
    r"""Output only. Visibility of the output.

    Values:
      DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED: Default
      DISPLAY_VARIABLE_VISIBILITY_ROOT: Expose output as root module output.
    """
    DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED = 0
    DISPLAY_VARIABLE_VISIBILITY_ROOT = 1

  visibility = _messages.EnumField('VisibilityValueValuesEnum', 1)


class TestIamPermissionsRequest(_messages.Message):
  r"""Request message for `TestIamPermissions` method.

  Fields:
    permissions: The set of permissions to check for the `resource`.
      Permissions with wildcards (such as `*` or `storage.*`) are not allowed.
      For more information see [IAM
      Overview](https://cloud.google.com/iam/docs/overview#permissions).
  """

  permissions = _messages.StringField(1, repeated=True)


class TestIamPermissionsResponse(_messages.Message):
  r"""Response message for `TestIamPermissions` method.

  Fields:
    permissions: A subset of `TestPermissionsRequest.permissions` that the
      caller is allowed.
  """

  permissions = _messages.StringField(1, repeated=True)


class UpdatedTemplateRevision(_messages.Message):
  r"""The updated template revision, which results in an outdated application.

  Fields:
    createTime: Output only. The time when the template was created.
    templateDisplayName: Output only. The display name of the template. If the
      display name is not available, the template resource name is used.
    templateRevision: Output only. The details of the updated template
      revision.
  """

  createTime = _messages.StringField(1)
  templateDisplayName = _messages.StringField(2)
  templateRevision = _messages.StringField(3)


class ValueLabel(_messages.Message):
  r"""Value label for a UI input.

  Fields:
    label: Output only. Label of the enum.
    value: Output only. Value of the enum.
  """

  label = _messages.StringField(1)
  value = _messages.StringField(2)


class ValueLabelInput(_messages.Message):
  r"""Value label input for a UI.

  Fields:
    label: Optional. Label of the enum.
    value: Optional. Value of the enum.
  """

  label = _messages.StringField(1)
  value = _messages.StringField(2)


encoding.AddCustomJsonFieldMapping(
    StandardQueryParameters, 'f__xgafv', '$.xgafv')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
encoding.AddCustomJsonFieldMapping(
    DesigncenterProjectsLocationsSpacesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion')
