{
  "servicePath": "",
  "ownerDomain": "google.com",
  "fullyEncodeReservedExpansion": true,
  "name": "designcenter",
  "description": "Design and share deployable application architectures.",
  "protocol": "rest",
  "revision": "20260810",
  "discoveryVersion": "v1",
  "kind": "discovery#restDescription",
  "canonicalName": "Application Design Center",
  "documentationLink": "http://cloud.google.com/application-design-center/docs",
  "baseUrl": "https://designcenter.googleapis.com/",
  "rootUrl": "https://designcenter.googleapis.com/",
  "mtlsRootUrl": "https://designcenter.mtls.googleapis.com/",
  "ownerName": "Google",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "title": "Design Center API",
  "basePath": "",
  "schemas": {
    "RegisterAppHubApplicationResourcesRequest": {
      "type": "object",
      "properties": {
        "apphubApplication": {
          "type": "string",
          "description": "Required. The name of the AppHub Application. Format: projects/{project}/locations/{location}/applications/{application}"
        },
        "tfstateContent": {
          "type": "string",
          "description": "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": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "RegisterAppHubApplicationResourcesRequest",
      "description": "Request message for RegisterAppHubApplicationResources method."
    },
    "TerraformVariableValidation": {
      "description": "Represents a custom validation rule defined on a Terraform input variable.",
      "id": "TerraformVariableValidation",
      "type": "object",
      "properties": {
        "condition": {
          "description": "Optional. The HCL expression for the validation condition (e.g., \"length(var.image_id) \u003e 4\").",
          "type": "string"
        },
        "errorMessage": {
          "type": "string",
          "description": "Optional. The error message displayed when the condition is false."
        }
      }
    },
    "GenerateApplicationTemplateRevisionIaCResponse": {
      "description": "Response message for GenerateApplicationTemplateRevisionIaC method.",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template revision.",
          "$ref": "RootModulesMetadata"
        }
      },
      "id": "GenerateApplicationTemplateRevisionIaCResponse"
    },
    "AssessmentReport": {
      "description": "Aggregated assessment report from all domains.",
      "type": "object",
      "properties": {
        "adcApplicationTemplateUri": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Application Template URI."
        },
        "skippedDomains": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. Skipped domains.",
          "items": {
            "$ref": "SkippedDomain"
          }
        },
        "createTime": {
          "description": "Output only. The time at which the report was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "adcCatalogTemplateUri": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Catalog Template URI."
        },
        "domainAssessmentReports": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. Generated best practice reports.",
          "items": {
            "$ref": "DomainAssessmentReport"
          }
        },
        "adcApplicationUri": {
          "description": "Output only. Application URI.",
          "readOnly": true,
          "type": "string"
        },
        "adcSpaceUri": {
          "description": "Output only. Space URI.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "AssessmentReport"
    },
    "SerializedApplicationTemplate": {
      "description": "Serialized application template.",
      "type": "object",
      "properties": {
        "rootInputVariables": {
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Output only. Root level input variables of the application template.",
          "readOnly": true,
          "type": "array"
        },
        "components": {
          "type": "array",
          "items": {
            "$ref": "SerializedComponent"
          },
          "description": "Optional. The application template components."
        },
        "customVariables": {
          "type": "array",
          "items": {
            "$ref": "TerraformInput"
          },
          "description": "Optional. Custom variables imported from variables.tf."
        },
        "rootOutputVariables": {
          "description": "Output only. Root level output variables of the application template.",
          "items": {
            "$ref": "ComponentVariable"
          },
          "readOnly": true,
          "type": "array"
        },
        "hasGlobalResource": {
          "description": "Output only. Whether the application template is compatible with regional scope.",
          "readOnly": true,
          "type": "boolean"
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "customTfvars": {
          "type": "array",
          "description": "Optional. Custom variable values imported from terraform.tfvars.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "uri": {
          "description": "Optional. The application template URI.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Optional. The application template description."
        },
        "applicationParameters": {
          "type": "array",
          "description": "Optional. Parameters to apply to all components in the application template.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "apphubApplicationParameters": {
          "description": "Optional. The App Hub application parameters.",
          "$ref": "AppHubApplicationParameters"
        },
        "compositionType": {
          "description": "Output only. The composition type of the applicationTemplate: STANDARD OR COMPOSITE.",
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "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.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ]
        },
        "serializedPolicies": {
          "items": {
            "$ref": "SerializedPolicy"
          },
          "description": "Output only. Policies of the application template.",
          "readOnly": true,
          "type": "array"
        },
        "displayName": {
          "description": "Optional. The application template display name.",
          "type": "string"
        },
        "providers": {
          "items": {
            "$ref": "SerializedProvider"
          },
          "description": "Optional. Custom provider configurations imported from IaC.",
          "type": "array"
        },
        "iacFormat": {
          "description": "Optional. The IaC format of the application template.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ]
        }
      },
      "id": "SerializedApplicationTemplate"
    },
    "GenerateApplicationTemplateRevisionIaCRequest": {
      "description": "Request message for GenerateApplicationTemplateRevisionIaC method.",
      "type": "object",
      "properties": {
        "iacFormat": {
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "description": "Optional. The IaC format to generate.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        }
      },
      "id": "GenerateApplicationTemplateRevisionIaCRequest"
    },
    "IaCFile": {
      "description": "IaCFile represents a single infrastructure as code file.",
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "description": "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 HCL content of the file."
        },
        "name": {
          "type": "string",
          "description": "Required. The name of the file."
        }
      },
      "id": "IaCFile"
    },
    "RoleInfo": {
      "description": "RoleInfo represents an IAM role along with its origin.",
      "id": "RoleInfo",
      "type": "object",
      "properties": {
        "systemProvided": {
          "readOnly": true,
          "type": "boolean",
          "description": "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."
        },
        "role": {
          "description": "Required. IAM role name, such as `roles/editor`.",
          "type": "string"
        },
        "permissions": {
          "readOnly": true,
          "type": "array",
          "description": "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.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "TerraformUiInput": {
      "type": "object",
      "properties": {
        "terraformUiInputs": {
          "readOnly": true,
          "type": "object",
          "description": "Output only. Terraform UI inputs.",
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          }
        }
      },
      "id": "TerraformUiInput",
      "description": "Terraform blueprint UI input."
    },
    "ComponentOutputParameters": {
      "description": "The component output parameters of the deployment.",
      "id": "ComponentOutputParameters",
      "type": "object",
      "properties": {
        "component": {
          "description": "Output only. The component name of the output parameters.",
          "readOnly": true,
          "type": "string"
        },
        "parameters": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Output only. The output parameters of the component."
        }
      }
    },
    "ProvisionDeploymentGroupOperationMetadata": {
      "type": "object",
      "properties": {
        "deploymentUnitProgress": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. List of deployment unit deployment progress",
          "items": {
            "$ref": "DeploymentUnitProgress"
          }
        },
        "deploymentStep": {
          "description": "Output only. Current step of deploying composite application",
          "enum": [
            "DEPLOYMENT_STEP_UNSPECIFIED",
            "GENERATING_TERRAFORM_CONTENT",
            "DEPLOYING",
            "SUCCEEDED",
            "FAILED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified deployment step.",
            "Generating Terraform content for the application.",
            "Deploying the application.",
            "Operation was successful.",
            "Operation failed."
          ]
        }
      },
      "id": "ProvisionDeploymentGroupOperationMetadata",
      "description": "Represents the Provision Deployment Group operation metadata."
    },
    "Channel": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Required. URI of the channel."
        }
      },
      "id": "Channel",
      "description": "Separate message to accommodate custom formats across IRC and Slack."
    },
    "InferredMetadata": {
      "description": "Inferred metadata.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. Inferred metadata creation timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Inferred metadata update timestamp."
        },
        "description": {
          "description": "Output only. Inferred description.",
          "readOnly": true,
          "type": "string"
        },
        "templateMetadata": {
          "readOnly": true,
          "description": "Output only. Inferred template metadata related to Terraform input and output.",
          "$ref": "TFBlueprintMetadata"
        }
      },
      "id": "InferredMetadata"
    },
    "IaCModule": {
      "description": "IaCModule represents a single infrastructure as code module.",
      "id": "IaCModule",
      "type": "object",
      "properties": {
        "files": {
          "description": "Optional. The files in the module.",
          "items": {
            "$ref": "IaCFile"
          },
          "type": "array"
        }
      }
    },
    "SerializedComponent": {
      "description": "Serialized component.",
      "type": "object",
      "properties": {
        "componentParameterSchema": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. The component parameter schema, which includes possible parameter values.",
          "items": {
            "$ref": "ComponentParameterSchema"
          }
        },
        "connections": {
          "items": {
            "$ref": "SerializedConnection"
          },
          "description": "Optional. The component connections.",
          "type": "array"
        },
        "uri": {
          "type": "string",
          "description": "Optional. The component URI."
        },
        "connectionsParameters": {
          "items": {
            "$ref": "ConnectionParameters"
          },
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "type": "array"
        },
        "applicationTemplateRevisionUri": {
          "description": "Optional. The application template revision used to generate the component.",
          "type": "string"
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Optional. IAM roles required by the service account to deploy the component.",
          "type": "array"
        },
        "useAsRootModule": {
          "type": "boolean",
          "description": "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."
        },
        "sharedTemplateRevisionUri": {
          "description": "Optional. The shared template used to generate the component.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        },
        "parameters": {
          "description": "Optional. The component parameters.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "inputVariableAliases": {
          "type": "array",
          "description": "Optional. Input variable aliases defined for this serialized component.",
          "items": {
            "$ref": "InputVariableAlias"
          }
        },
        "apis": {
          "type": "array",
          "description": "Optional. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "items": {
            "type": "string"
          }
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        }
      },
      "id": "SerializedComponent"
    },
    "ListApplicationsResponse": {
      "id": "ListApplicationsResponse",
      "type": "object",
      "properties": {
        "unreachable": {
          "type": "array",
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "applications": {
          "description": "The list of applications.",
          "items": {
            "$ref": "Application"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        }
      },
      "description": "Message for response to listing applications."
    },
    "ContactInfo": {
      "description": "Contact information of stakeholders.",
      "type": "object",
      "properties": {
        "email": {
          "description": "Required. Email address of the contacts.",
          "type": "string"
        },
        "channel": {
          "description": "Optional. Communication channel of the contacts.",
          "$ref": "Channel"
        },
        "displayName": {
          "description": "Optional. Contact's name. Can have a maximum length of 63 characters.",
          "type": "string"
        }
      },
      "id": "ContactInfo"
    },
    "ListOperationsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "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."
        },
        "operations": {
          "type": "array",
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          }
        }
      },
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations."
    },
    "DeveloperConnectConfig": {
      "type": "object",
      "properties": {
        "gitRepositoryLink": {
          "type": "string",
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`."
        }
      },
      "id": "DeveloperConnectConfig",
      "description": "This config defines the location of a source through Developer Connect."
    },
    "HelmApplicationOutputParameters": {
      "id": "HelmApplicationOutputParameters",
      "type": "object",
      "properties": {
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Output only. The output parameters of the helm application.",
          "readOnly": true,
          "type": "array"
        }
      },
      "description": "The helm application output parameters of the deployment."
    },
    "Binding": {
      "description": "Associates `members`, or principals, with a `role`.",
      "type": "object",
      "properties": {
        "role": {
          "description": "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).",
          "type": "string"
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "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/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{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/global/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.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`."
        },
        "condition": {
          "description": "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).",
          "$ref": "Expr"
        }
      },
      "id": "Binding"
    },
    "CatalogTemplateRevision": {
      "description": "Template revisions inside a catalog.",
      "type": "object",
      "properties": {
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "logicalProducts": {
          "description": "Output only. The Product Main logical product type information.",
          "items": {
            "$ref": "LogicalProduct"
          },
          "readOnly": true,
          "type": "array"
        },
        "inferredMetadata": {
          "readOnly": true,
          "description": "Output only. Metadata that was automatically inferred from the template content. This field can be updated by the system as it gets new information.",
          "$ref": "InferredMetadata"
        },
        "annotations": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. The annotations of the template revision. Key is the annotation name. Value is the annotation value.",
          "type": "object"
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "gcsSourceUri": {
          "deprecated": true,
          "description": "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].",
          "type": "string"
        },
        "templateMetadata": {
          "description": "Output only. Template metadata related to Terraform input and output.",
          "$ref": "TFBlueprintMetadata",
          "readOnly": true
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "$ref": "HelmChartMetadata",
          "readOnly": true
        },
        "state": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The template is being validated.",
            "The template is ready to be used.",
            "The template is invalid."
          ],
          "description": "Output only. The template state (validating/ready/invalid).",
          "enum": [
            "STATE_UNSPECIFIED",
            "VALIDATING",
            "ACTIVE",
            "INVALID"
          ]
        },
        "metadataInput": {
          "description": "Optional. Metadata input.",
          "$ref": "MetadataInput"
        },
        "type": {
          "description": "Optional. The Application Design Center application template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ]
        },
        "description": {
          "description": "Optional. The catalog template revision description.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The catalog template revision name. `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template/revisions/$revision`",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "applicationParameters": {
          "description": "Optional. The values provided for the input variables.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "templateCategory": {
          "description": "Output only. The category of the template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ]
        },
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "applicationTemplateRevision": {
          "readOnly": true,
          "description": "Output only. The application template revision.",
          "$ref": "SerializedApplicationTemplate"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "iacSource": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ],
          "description": "Output only. Indicates the IaC source format of this catalog template revision.",
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ]
        },
        "resourceTypes": {
          "items": {
            "$ref": "ResourceType"
          },
          "description": "Output only. The resource types present in the template revision.",
          "readOnly": true,
          "type": "array"
        },
        "uuid": {
          "description": "Output only. UUID of the template revision.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "CatalogTemplateRevision"
    },
    "ImportApplicationTemplateIaCRequest": {
      "description": "Request message for ImportApplicationTemplateIaC method.",
      "type": "object",
      "properties": {
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "gcsUri": {
          "type": "string",
          "description": "Optional. The Cloud Storage URI of the terraform code."
        },
        "allowPartialImport": {
          "type": "boolean",
          "description": "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."
        },
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        }
      },
      "id": "ImportApplicationTemplateIaCRequest"
    },
    "ApplicationOutputParameters": {
      "id": "ApplicationOutputParameters",
      "type": "object",
      "properties": {
        "helmApplicationOutputParameters": {
          "description": "Output only. Helm application output parameters.",
          "$ref": "HelmApplicationOutputParameters",
          "readOnly": true
        }
      },
      "description": "The application output parameters of the deployment."
    },
    "ExportIaCConfig": {
      "description": "Configuration for exporting a resource as IAC.",
      "id": "ExportIaCConfig",
      "type": "object",
      "properties": {
        "tfConfig": {
          "description": "Optional. Configuration on how to handle terraform IaC export.",
          "$ref": "TerraformConfig"
        },
        "iacFormat": {
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "description": "Optional. IaC format of the export. Default is [IACFormat.TERRAFORM].",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        }
      }
    },
    "CompositeApplicationParameters": {
      "id": "CompositeApplicationParameters",
      "type": "object",
      "properties": {
        "projectParametersMap": {
          "readOnly": true,
          "type": "object",
          "description": "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}",
          "additionalProperties": {
            "$ref": "ProjectParametersList"
          }
        },
        "serviceAccountMap": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. A map from a component's URI to the deployment service account for composite application. key format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/components/{component} value format: projects/{project}/serviceAccounts/{email_address}",
          "type": "object"
        }
      },
      "description": "Holds parameters that are specific to composite applications."
    },
    "SaaSRuntimeContext": {
      "id": "SaaSRuntimeContext",
      "type": "object",
      "properties": {
        "saasNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. The SaaS names. Format for each SaaS: projects/{project}/locations/{location}/saas/{saas}"
        }
      },
      "description": "SaaS runtime context."
    },
    "ExportApplicationTemplateRevisionIaCRequest": {
      "description": "Request message for ExportApplicationTemplateRevisionIaC method.",
      "id": "ExportApplicationTemplateRevisionIaCRequest",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository. Default is Google Cloud Storage.",
          "$ref": "ArtifactLocation"
        },
        "exportIacConfig": {
          "description": "Optional. Configuration for exporting IaC.",
          "$ref": "ExportIaCConfig"
        }
      }
    },
    "GenerateApplicationIaCRequest": {
      "description": "Request message for GenerateApplicationIaC method.",
      "id": "GenerateApplicationIaCRequest",
      "type": "object",
      "properties": {
        "gcsUri": {
          "type": "string",
          "description": "Optional. DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI to write the generated IaC to.",
          "deprecated": true
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        },
        "iacFormat": {
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "description": "Optional. The IaC format to generate.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        }
      }
    },
    "ProjectParameters": {
      "description": "The ProjectParameters provides the parameters needed to deploy the application in the given project.",
      "id": "ProjectParameters",
      "type": "object",
      "properties": {
        "projectId": {
          "description": "Output only. The project ID of the project.",
          "readOnly": true,
          "type": "string"
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account to deploy the application in given project.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "apis": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. APIs required to be enabled to deploy the application, in the form of \"*.googleapis.com\"."
        }
      }
    },
    "DeploymentMetadata": {
      "description": "Deployment information for the application.",
      "type": "object",
      "properties": {
        "build": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with this deployment."
        },
        "componentOutputParameters": {
          "description": "Output only. The component output parameters of the deployment.",
          "items": {
            "$ref": "ComponentOutputParameters"
          },
          "readOnly": true,
          "type": "array"
        },
        "workerPool": {
          "description": "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}`.",
          "readOnly": true,
          "type": "string"
        },
        "applicationOutputParameters": {
          "readOnly": true,
          "description": "Output only. The application output parameters of the deployment.",
          "$ref": "ApplicationOutputParameters"
        },
        "revision": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The revision of the deployment associated with the Application."
        },
        "retryAttempts": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. The attempted number of deployment retries."
        },
        "error": {
          "description": "Output only. The error associated with the deployment.",
          "$ref": "DeploymentError",
          "readOnly": true
        }
      },
      "id": "DeploymentMetadata"
    },
    "ImportApplicationIaCResponse": {
      "description": "Response message for ImportApplicationIaC method.",
      "type": "object",
      "properties": {
        "application": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "Application"
        },
        "errors": {
          "description": "Errors encountered during import.",
          "items": {
            "$ref": "ImportIaCError"
          },
          "type": "array"
        },
        "state": {
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ],
          "description": "The state of the import.",
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ]
        }
      },
      "id": "ImportApplicationIaCResponse"
    },
    "ComponentVariable": {
      "description": "The details of an input/output variable: the variable and the component Uri. name.",
      "id": "ComponentVariable",
      "type": "object",
      "properties": {
        "variable": {
          "description": "Required. Name of the variable.",
          "type": "string"
        },
        "componentUri": {
          "type": "string",
          "description": "Required. Component to which this variable belongs."
        }
      }
    },
    "DeveloperConnectExportConfig": {
      "id": "DeveloperConnectExportConfig",
      "type": "object",
      "properties": {
        "developerConnectRepoUri": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.",
          "type": "string"
        },
        "dir": {
          "description": "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.",
          "type": "string"
        },
        "commitSha": {
          "description": "Output only. The SHA of the Git commit that contains the exported content such as Infrastructure as Code (IaC).",
          "readOnly": true,
          "type": "string"
        },
        "branch": {
          "type": "string",
          "description": "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."
        }
      },
      "description": "Through Developer Connect, defines a location where content such as Infrastructure as Code (IaC) is stored."
    },
    "Expr": {
      "description": "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() \u003c 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.",
      "id": "Expr",
      "type": "object",
      "properties": {
        "location": {
          "type": "string",
          "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file."
        },
        "description": {
          "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
          "type": "string"
        },
        "expression": {
          "type": "string",
          "description": "Textual representation of an expression in Common Expression Language syntax."
        },
        "title": {
          "description": "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.",
          "type": "string"
        }
      }
    },
    "ValueLabel": {
      "description": "Value label for a UI input.",
      "id": "ValueLabel",
      "type": "object",
      "properties": {
        "label": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Label of the enum."
        },
        "value": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Value of the enum."
        }
      }
    },
    "ApplicationOperationMetadata": {
      "description": "Ephemeral metadata depicting the state of the delete operation.",
      "type": "object",
      "properties": {
        "step": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The current step of the delete operation. Associated with Infrastructure Manager and App Hub."
        },
        "build": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with the delete operation."
        }
      },
      "id": "ApplicationOperationMetadata"
    },
    "RootModulesMetadata": {
      "id": "RootModulesMetadata",
      "type": "object",
      "properties": {
        "rootModules": {
          "type": "array",
          "items": {
            "$ref": "RootModule"
          },
          "description": "List of terraform root modules."
        }
      },
      "description": "Root modules metadata."
    },
    "SyncShareRequest": {
      "id": "SyncShareRequest",
      "type": "object",
      "properties": {},
      "description": "Message for syncing a share of a catalog."
    },
    "ListSharedTemplatesResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        },
        "sharedTemplates": {
          "type": "array",
          "description": "The list of shared templates.",
          "items": {
            "$ref": "SharedTemplate"
          }
        }
      },
      "id": "ListSharedTemplatesResponse",
      "description": "Message for response to listing shared templates."
    },
    "MetadataInputSpec": {
      "id": "MetadataInputSpec",
      "type": "object",
      "properties": {
        "requirements": {
          "description": "Required. TemplateRequirements defines the roles required and the provider versions.",
          "$ref": "TemplateRequirements"
        },
        "info": {
          "description": "Optional. TemplateInfo provides the actuation tool information.",
          "$ref": "TemplateInfo"
        },
        "interfaces": {
          "description": "Optional. TemplateSchemas provides the input variables lists and connection information.",
          "$ref": "TemplateSchema"
        },
        "ui": {
          "description": "Optional. TemplateUi defines the UI related information for the Template.",
          "$ref": "TemplateUi"
        }
      },
      "description": "Specifications for the input"
    },
    "ResourceType": {
      "description": "Represents the type of a resource within a component template.",
      "id": "ResourceType",
      "type": "object",
      "properties": {
        "tfResource": {
          "description": "Output only. The Terraform resource type. For example: \"google_compute_instance\".",
          "readOnly": true,
          "type": "string"
        },
        "caisResource": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The CAIS resource type."
        }
      }
    },
    "Connection": {
      "id": "Connection",
      "type": "object",
      "properties": {
        "updateTime": {
          "description": "Output only. The connection update timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Identifier. The connection name."
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The connection creation timestamp."
        },
        "sourceComponentParameters": {
          "type": "array",
          "description": "Optional. The parameters of the connection associated with the source component.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "destinationComponentParameters": {
          "type": "array",
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "dependencyType": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The dependency type is unspecified.",
            "Data dependency: output parameter of one module is input to another.",
            "Logical dependency: explicitly declared execution order dependency (depends_on)."
          ],
          "description": "Output only. The type of the connection (data or logical).",
          "enum": [
            "CONNECTION_DEPENDENCY_TYPE_UNSPECIFIED",
            "CONNECTION_DEPENDENCY_TYPE_DATA",
            "CONNECTION_DEPENDENCY_TYPE_LOGICAL"
          ]
        },
        "destinationComponentUri": {
          "description": "Required. The destination component URI used to generate the connection. Format is `projects/$project/locations/$location/spaces/$space/applicationTemplates/$application_template/components/$component`",
          "type": "string"
        }
      },
      "description": "Connection resource."
    },
    "ListApplicationTemplateRevisionsResponse": {
      "description": "Message for response to listing application template revisions.",
      "id": "ListApplicationTemplateRevisionsResponse",
      "type": "object",
      "properties": {
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        },
        "nextPageToken": {
          "type": "string",
          "description": "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."
        },
        "applicationTemplateRevisions": {
          "description": "The list of application template revisions.",
          "items": {
            "$ref": "ApplicationTemplateRevision"
          },
          "type": "array"
        }
      }
    },
    "DeploymentTarget": {
      "description": "The deployment target of the application.",
      "id": "DeploymentTarget",
      "type": "object",
      "properties": {
        "gkeDeploymentTarget": {
          "description": "Optional. The GKE deployment target.",
          "$ref": "GKEDeploymentTarget"
        }
      }
    },
    "ConnectionParameters": {
      "description": "Connection level parameters associated with each component within an application.",
      "id": "ConnectionParameters",
      "type": "object",
      "properties": {
        "connection": {
          "type": "string",
          "description": "Required. The name of the connection parameter."
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. A list of parameters associated with the connection."
        }
      }
    },
    "HelmChartInput": {
      "type": "object",
      "properties": {
        "defaultValue": {
          "description": "Output only. The default value of the input variable.",
          "readOnly": true,
          "type": "any"
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        },
        "type": {
          "description": "Output only. Input data type.",
          "readOnly": true,
          "type": "string"
        },
        "nestedInputs": {
          "additionalProperties": {
            "$ref": "HelmChartInput"
          },
          "description": "Output only. Contains details of nested inputs.",
          "readOnly": true,
          "type": "object"
        },
        "description": {
          "description": "Output only. Input variable description.",
          "readOnly": true,
          "type": "string"
        },
        "helmInputVariable": {
          "description": "Output only. Input variable name present in Helm Chart values.yaml",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "HelmChartInput",
      "description": "Helm Chart inputs. Documentation: https://helm.sh/docs/"
    },
    "FetchSharedTemplateRevisionAssessmentReportResponse": {
      "id": "FetchSharedTemplateRevisionAssessmentReportResponse",
      "type": "object",
      "properties": {
        "assessmentReport": {
          "description": "Assessment report for the shared template revision.",
          "$ref": "AssessmentReport"
        }
      },
      "description": "Response message for FetchSharedTemplateRevisionAssessmentReport."
    },
    "ComponentApplicationInfo": {
      "id": "ComponentApplicationInfo",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. Display name for the application. The number of characters should be less than 64 characters.",
          "type": "string"
        },
        "scope": {
          "description": "Optional. Scope of apphub application.",
          "$ref": "Scope"
        },
        "apphubApplicationId": {
          "description": "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])?$`.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. Attributes of apphub application.",
          "$ref": "Attributes"
        },
        "deploymentRegion": {
          "type": "string",
          "description": "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`."
        }
      },
      "description": "This captures the apphub application details associated with the component."
    },
    "TestIamPermissionsResponse": {
      "type": "object",
      "properties": {
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed."
        }
      },
      "id": "TestIamPermissionsResponse",
      "description": "Response message for `TestIamPermissions` method."
    },
    "ListConnectionsResponse": {
      "description": "Message for response to listing connections.",
      "id": "ListConnectionsResponse",
      "type": "object",
      "properties": {
        "connections": {
          "type": "array",
          "items": {
            "$ref": "Connection"
          },
          "description": "The list of connections."
        },
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        }
      }
    },
    "FindingADCMetadata": {
      "description": "Metadata related to the Application Design Center with the finding.",
      "id": "FindingADCMetadata",
      "type": "object",
      "properties": {
        "componentName": {
          "description": "Output only. Component the finding belongs to.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "AuditLogConfig": {
      "type": "object",
      "properties": {
        "logType": {
          "type": "string",
          "enumDescriptions": [
            "Default case. Should never be this.",
            "Admin reads. Example: CloudIAM getIamPolicy",
            "Data writes. Example: CloudSQL Users create",
            "Data reads. Example: CloudSQL Users list"
          ],
          "description": "The log type that this config enables.",
          "enum": [
            "LOG_TYPE_UNSPECIFIED",
            "ADMIN_READ",
            "DATA_WRITE",
            "DATA_READ"
          ]
        },
        "exemptedMembers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members."
        }
      },
      "id": "AuditLogConfig",
      "description": "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."
    },
    "ArtifactLocation": {
      "id": "ArtifactLocation",
      "type": "object",
      "properties": {
        "developerConnectExportConfig": {
          "description": "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.",
          "$ref": "DeveloperConnectExportConfig"
        },
        "gcsUri": {
          "type": "string",
          "description": "Optional. The Cloud Storage URI for storing the generated IaC."
        }
      },
      "description": "Defines the location for storing an artifact, such as generated IaC."
    },
    "Scope": {
      "id": "Scope",
      "type": "object",
      "properties": {
        "type": {
          "description": "Required. Scope Type.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "REGIONAL",
            "GLOBAL"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Regional type.",
            "Global type."
          ]
        }
      },
      "description": "Scope of an application."
    },
    "RootOutputVariable": {
      "type": "object",
      "properties": {
        "variable": {
          "description": "Name of the output variable.",
          "type": "string"
        }
      },
      "id": "RootOutputVariable",
      "description": "Output variable of a root module."
    },
    "ImportApplicationTemplateRequest": {
      "type": "object",
      "properties": {
        "sharedTemplateRevisionUri": {
          "type": "string",
          "description": "Optional. The source URI for catalog template."
        },
        "serializedApplicationTemplate": {
          "description": "Optional. The serialized application template to be imported.",
          "$ref": "SerializedApplicationTemplate"
        },
        "applicationTemplateSystemRevision": {
          "type": "string",
          "description": "Optional. The system revision to be imported. Used when user tries to Restore (rev X) or perform Undo/Redo operations."
        },
        "applicationTemplateRevisionUri": {
          "description": "Optional. The source URI for application template revision.",
          "type": "string"
        },
        "annotations": {
          "type": "object",
          "description": "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\", }",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "id": "ImportApplicationTemplateRequest",
      "description": "Request message for ImportApplicationTemplate method."
    },
    "DesignCenterPolicy": {
      "description": "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.",
      "id": "DesignCenterPolicy",
      "type": "object",
      "properties": {
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        },
        "displayName": {
          "type": "string",
          "description": "Optional. The policy display name."
        },
        "applyConditions": {
          "description": "Optional. Conditions for applying the policy. Condition accepts the `criticality` and `environment` parameters from the application template.",
          "items": {
            "$ref": "ApplyCondition"
          },
          "type": "array"
        },
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The policy description.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The policy creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "policyType": {
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "Compliance framework policy."
          ],
          "description": "Required. The policy type. Policy type is used to determine the domain of the policy.",
          "enum": [
            "POLICY_TYPE_UNSPECIFIED",
            "COMPLIANCE_FRAMEWORK"
          ]
        },
        "updateTime": {
          "description": "Output only. The policy update timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "CodePosition": {
      "description": "CodePosition represents a code location.",
      "id": "CodePosition",
      "type": "object",
      "properties": {
        "line": {
          "format": "int32",
          "readOnly": true,
          "type": "integer",
          "description": "Output only. One-based line count of the relevant position."
        },
        "column": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. One-based column count of the relevant position."
        },
        "byteOffset": {
          "description": "Output only. Byte offset in the content.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        }
      }
    },
    "TemplateConnections": {
      "type": "object",
      "properties": {
        "source": {
          "description": "Required. Source of the connection.",
          "$ref": "ConnectionSource"
        },
        "spec": {
          "description": "Required. Connection specifications.",
          "$ref": "ConnectionSpec"
        }
      },
      "id": "TemplateConnections",
      "description": "TemplateConnections"
    },
    "GKEDeploymentTarget": {
      "id": "GKEDeploymentTarget",
      "type": "object",
      "properties": {
        "clusterSelfLink": {
          "description": "Required. The self link of the cluster where GKE based application is deployed.",
          "type": "string"
        },
        "namespace": {
          "description": "Required. The namespace where the application is deployed.",
          "type": "string"
        },
        "kubernetesServiceAccount": {
          "description": "Required. The kubernetes service account that is created within the namespace provided above. Example: default or node-sa",
          "type": "string"
        },
        "kubernetesServiceAccountCreation": {
          "type": "boolean",
          "description": "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."
        }
      },
      "description": "The GKE deployment target."
    },
    "ComponentParameterSchema": {
      "description": "Component parameter schema, which contains a list of all component parameters.",
      "type": "object",
      "properties": {
        "key": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The key of the parameter."
        },
        "defaultValue": {
          "description": "Output only. The default value of the parameter.",
          "readOnly": true,
          "type": "any"
        },
        "isRequired": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the parameter is required."
        },
        "type": {
          "description": "Output only. The type of the parameter.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "ComponentParameterSchema"
    },
    "DeveloperConnectSourceConfig": {
      "id": "DeveloperConnectSourceConfig",
      "type": "object",
      "properties": {
        "reference": {
          "description": "Required. The reference (for example, a branch, tag, or commit SHA) from which the content should be read.",
          "$ref": "GitReference"
        },
        "dir": {
          "description": "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.",
          "type": "string"
        },
        "developerConnectRepoUri": {
          "type": "string",
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`."
        },
        "fetchedCommitSha": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The SHA of the commit deduced from GitReference."
        }
      },
      "description": "This config specifies the location of a source (such as GitHub or Bitbucket) through Developer Connect."
    },
    "Domain": {
      "id": "Domain",
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Optional. The domain display name is user friendly name used for UI."
        },
        "description": {
          "type": "string",
          "description": "Optional. The domain description."
        },
        "inactive": {
          "description": "Optional. Whether the domain is inactive. Default: false.",
          "type": "boolean"
        },
        "domainName": {
          "description": "Required. The domain name. Uniquely identifies the domain.",
          "type": "string"
        },
        "frameworks": {
          "description": "Optional. The frameworks that are applicable in this domain.",
          "items": {
            "$ref": "Framework"
          },
          "type": "array"
        }
      },
      "description": "Domain for assessment."
    },
    "TerraformError": {
      "type": "object",
      "properties": {
        "resourceAddress": {
          "description": "Address of the resource associated with the error, e.g. `google_compute_network.vpc_network`.",
          "type": "string"
        },
        "httpResponseCode": {
          "description": "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.",
          "format": "int32",
          "type": "integer"
        },
        "error": {
          "readOnly": true,
          "description": "Output only. Original error response from underlying Google API, if available.",
          "$ref": "Status"
        },
        "errorDescription": {
          "type": "string",
          "description": "A human-readable error description."
        }
      },
      "id": "TerraformError",
      "description": "Errors encountered during actuation using Terraform"
    },
    "ApplicationTemplateSystemRevision": {
      "description": "Application template system revision resource.",
      "id": "ApplicationTemplateSystemRevision",
      "type": "object",
      "properties": {
        "annotations": {
          "readOnly": true,
          "type": "object",
          "description": "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\" }",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string",
          "description": "Identifier. The application template system revision name. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}"
        },
        "createTime": {
          "description": "Output only. The application template system revision creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "snapshot": {
          "description": "Output only. The serialized application template snapshot at this revision.",
          "$ref": "SerializedApplicationTemplate",
          "readOnly": true
        }
      }
    },
    "InferConnectionsRequest": {
      "type": "object",
      "properties": {
        "useGemini": {
          "type": "boolean",
          "description": "Optional. Whether to use Gemini."
        },
        "catalogTemplateRevisionUris": {
          "type": "array",
          "description": "Optional. A list of Catalog template revisions that you want to infer connections for. If you don't provide this, the system infers connections for the latest revisions of all catalog templates in all the catalogs present in the space.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "InferConnectionsRequest",
      "description": "Request message for InferConnections method."
    },
    "DeploymentGroupMetadata": {
      "type": "object",
      "properties": {
        "deploymentMetadataMap": {
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "DeploymentMetadata"
          },
          "description": "Output only. Map of component name to deployment metadata for the component. Key format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/components/{component}"
        },
        "deploymentGroup": {
          "description": "Output only. The deployment group name. Format: projects/{project}/locations/{location}/deploymentGroup/{deployment_group}",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "DeploymentGroupMetadata",
      "description": "Metadata for the infra manager deployment group. A deployment group in Infrastructure Manager is a logical grouping of one or more deployments."
    },
    "TemplateSchema": {
      "id": "TemplateSchema",
      "type": "object",
      "properties": {
        "variables": {
          "type": "array",
          "items": {
            "$ref": "TemplateVariable"
          },
          "description": "Required. All defined variables for the Template"
        }
      },
      "description": "TemplateSchema provides the input variables lists and connection information."
    },
    "GenerateAssessmentReportOperationMetadata": {
      "description": "Ephemeral metadata depicting the state of assessment report generation.",
      "type": "object",
      "properties": {
        "step": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified step.",
            "Generating Terraform fast plan.",
            "Generating BPBD assessment report.",
            "Succeeded.",
            "Failed."
          ],
          "description": "Output only. The current step of the generate assessment report operation.",
          "enum": [
            "ASSESSMENT_STEP_UNSPECIFIED",
            "FAST_PLAN",
            "ASSESSMENT_REPORT",
            "SUCCEEDED",
            "FAILED"
          ]
        }
      },
      "id": "GenerateAssessmentReportOperationMetadata"
    },
    "GenerateTerraformPlanAssessmentReportRequest": {
      "type": "object",
      "properties": {
        "terraformPlan": {
          "format": "byte",
          "type": "string",
          "description": "Required. The raw JSON representation of the generated Terraform plan, provided as bytes."
        },
        "additionalFrameworks": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Additional Frameworks to run assessment against. If empty, run against default frameworks. Frameworks refers to the policies.",
          "type": "array"
        }
      },
      "id": "GenerateTerraformPlanAssessmentReportRequest",
      "description": "Message for the request to generate a best practice report for a given Terraform plan at the collection level."
    },
    "CommitApplicationTemplateRequest": {
      "description": "Request message for CommitApplicationTemplate method.",
      "type": "object",
      "properties": {},
      "id": "CommitApplicationTemplateRequest"
    },
    "ConnectionSpec": {
      "type": "object",
      "properties": {
        "outputExpr": {
          "type": "string",
          "description": "Required. Output expression identifying output being connected to variable."
        },
        "inputPath": {
          "description": "Optional. Optional dot separated attribuite notation to connect to a specific object field of the input variable.",
          "type": "string"
        }
      },
      "id": "ConnectionSpec",
      "description": "Defines the specifications of a connection."
    },
    "GitSource": {
      "description": "Defines how to access a Git source.",
      "id": "GitSource",
      "type": "object",
      "properties": {
        "repo": {
          "description": "Required. Location of the git repo to build.",
          "type": "string"
        },
        "commitSha": {
          "description": "Output only. The commit SHA of the git repo deduced from given ref_tag.",
          "readOnly": true,
          "type": "string"
        },
        "developerConnectConfig": {
          "deprecated": true,
          "description": "Optional. This config defines the location of a source through Developer Connect. Used to access private git repos.",
          "$ref": "DeveloperConnectConfig"
        },
        "dir": {
          "type": "string",
          "description": "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": {
          "description": "Required. The reference tag of the git repo.",
          "type": "string"
        }
      }
    },
    "AlternateDefault": {
      "description": "Alternate default for a UI input.",
      "id": "AlternateDefault",
      "type": "object",
      "properties": {
        "type": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default",
            "A more secure default.",
            "A default specifically needed for Application Design center."
          ],
          "description": "Output only. Type of alternate default.",
          "enum": [
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_DC"
          ]
        },
        "value": {
          "description": "Output only. Value of the alternate default.",
          "readOnly": true,
          "type": "any"
        }
      }
    },
    "AssetDetails": {
      "description": "Details of a Cloud Asset Inventory asset that caused the finding.",
      "type": "object",
      "properties": {
        "assetId": {
          "description": "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).",
          "type": "string"
        },
        "assetType": {
          "type": "string",
          "description": "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)."
        }
      },
      "id": "AssetDetails"
    },
    "ApplyCondition": {
      "id": "ApplyCondition",
      "type": "object",
      "properties": {
        "conditionKey": {
          "type": "string",
          "description": "Required. The key of the parameter for the condition."
        },
        "conditionValue": {
          "type": "string",
          "description": "Required. The value of the parameter for the condition."
        }
      },
      "description": "Condition for applying the policy. Accepts the `criticality` and `environment` parameters from the application template."
    },
    "TerraformBlueprintUiMetadata": {
      "description": "Terraform blueprint UI metadata.",
      "type": "object",
      "properties": {
        "terraformUiInput": {
          "readOnly": true,
          "description": "Output only. Terraform UI inputs.",
          "$ref": "TerraformUiInput"
        },
        "terraformUiOutput": {
          "description": "Output only. Terraform UI outputs.",
          "$ref": "TerraformUiOutput",
          "readOnly": true
        }
      },
      "id": "TerraformBlueprintUiMetadata"
    },
    "SnapshotApplicationTemplateRequest": {
      "type": "object",
      "properties": {},
      "id": "SnapshotApplicationTemplateRequest",
      "description": "Message for snapshotting an application template asynchronously."
    },
    "Component": {
      "description": "Component resource.",
      "id": "Component",
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Optional. The component display name."
        },
        "sharedTemplateRevisionUri": {
          "type": "string",
          "description": "Required. Immutable. The shared template used to generate the component."
        },
        "roles": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. IAM roles required by the service account to deploy the component.",
          "items": {
            "type": "string"
          }
        },
        "useAsRootModule": {
          "description": "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.",
          "type": "boolean"
        },
        "connectionsParameters": {
          "items": {
            "$ref": "ConnectionParameters"
          },
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "type": "array"
        },
        "applicationTemplateRevisionUri": {
          "description": "Optional. The application template revision used to generate the component.",
          "type": "string"
        },
        "componentParameterSchema": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentParameterSchema"
          },
          "description": "Output only. The component parameter schema, which includes possible parameter values. values."
        },
        "name": {
          "type": "string",
          "description": "Identifier. The component name."
        },
        "createTime": {
          "description": "Output only. The component creation timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        },
        "apis": {
          "items": {
            "type": "string"
          },
          "description": "Output only. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "readOnly": true,
          "type": "array"
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The component parameters."
        },
        "inputVariableAliases": {
          "type": "array",
          "description": "Optional. Input variable aliases defined on this live component.",
          "items": {
            "$ref": "InputVariableAlias"
          }
        },
        "updateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The component update timestamp."
        }
      }
    },
    "ProjectParametersList": {
      "description": "Provides the list of project parameters needed to deploy an application.",
      "type": "object",
      "properties": {
        "projectParameters": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ProjectParameters"
          },
          "description": "Output only. List of project parameters for the application."
        }
      },
      "id": "ProjectParametersList"
    },
    "GenerateApplicationTemplateIaCRequest": {
      "description": "Request message for GenerateApplicationTemplateIaC method.",
      "id": "GenerateApplicationTemplateIaCRequest",
      "type": "object",
      "properties": {
        "iacFormat": {
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "description": "Optional. The IaC format to generate.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        },
        "gcsUri": {
          "type": "string",
          "description": "Optional. DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI to write the generated IaC to.",
          "deprecated": true
        }
      }
    },
    "MetadataInput": {
      "id": "MetadataInput",
      "type": "object",
      "properties": {
        "spec": {
          "description": "Required. spec containing the metadata",
          "$ref": "MetadataInputSpec"
        }
      },
      "description": "Metadata for the input"
    },
    "TemplateUiOutputDisplayVariable": {
      "id": "TemplateUiOutputDisplayVariable",
      "type": "object",
      "properties": {
        "visibility": {
          "type": "string",
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ],
          "description": "Required. Visibility of the output.",
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ]
        }
      },
      "description": "Additional display specific Template pertaining to a particular output variable."
    },
    "SerializedProvider": {
      "description": "Represents a serialized Terraform provider configuration.",
      "type": "object",
      "properties": {
        "providerAlias": {
          "type": "string",
          "description": "Optional. Optional alias for the provider (supports multi-region setups)."
        },
        "provider": {
          "type": "string",
          "description": "Required. Name of the provider (e.g., `\"google\"`, `\"google-beta\"`, `\"google-nightly\"`)."
        },
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. Configuration parameters of the provider. Reuses the standard Parameter message.",
          "type": "array"
        }
      },
      "id": "SerializedProvider"
    },
    "FetchCatalogTemplateRevisionAssessmentReportResponse": {
      "description": "Response message for FetchCatalogTemplateRevisionAssessmentReport.",
      "id": "FetchCatalogTemplateRevisionAssessmentReportResponse",
      "type": "object",
      "properties": {
        "assessmentReport": {
          "description": "Assessment report for the catalog template revision.",
          "$ref": "AssessmentReport"
        }
      }
    },
    "ApplicationTemplateRevision": {
      "id": "ApplicationTemplateRevision",
      "type": "object",
      "properties": {
        "snapshot": {
          "readOnly": true,
          "description": "Output only. The serialized application template.",
          "$ref": "SerializedApplicationTemplate"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate Revision was last successfully exported.",
          "$ref": "ArtifactLocation",
          "readOnly": true
        },
        "templateMetadata": {
          "readOnly": true,
          "description": "Output only. The input output variables parsed from the imported terraform code.",
          "$ref": "TFBlueprintMetadata"
        },
        "iacSource": {
          "description": "Output only. Indicates the IaC source format of this application template revision.",
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ]
        },
        "name": {
          "description": "Identifier. The application template revision name.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The application template revision creation timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "applicationParameters": {
          "type": "array",
          "description": "Optional. The values provided for the input variables.",
          "items": {
            "$ref": "Parameter"
          }
        }
      },
      "description": "Application template revision resource."
    },
    "RecommendIAMRolesRequest": {
      "id": "RecommendIAMRolesRequest",
      "type": "object",
      "properties": {},
      "description": "Request message for `RecommendIAMRoles`."
    },
    "GenerateApplicationTemplateAssessmentReportRequest": {
      "description": "Message for generate assessment report application template.",
      "id": "GenerateApplicationTemplateAssessmentReportRequest",
      "type": "object",
      "properties": {
        "serviceAccount": {
          "type": "string",
          "description": "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}",
          "deprecated": true
        }
      }
    },
    "DeploymentAttemptMetadata": {
      "id": "DeploymentAttemptMetadata",
      "type": "object",
      "properties": {
        "errorDetail": {
          "type": "string",
          "description": "Human readable string that summarizes the deployment error issue."
        },
        "build": {
          "description": "The build or execution ID associated with this specific attempt. This can be used to link back to logs or trace information.",
          "type": "string"
        },
        "attempt": {
          "format": "int32",
          "type": "integer",
          "description": "The sequential number of the attempt (starting from 1)."
        }
      },
      "description": "DeploymentAttemptMetadata represents a previous deployment attempt for an operation that failed due to a retryable error."
    },
    "ApiInfo": {
      "description": "ApiInfo represents an API along with its origin.",
      "type": "object",
      "properties": {
        "api": {
          "description": "Required. API name, such as `compute.googleapis.com`.",
          "type": "string"
        },
        "systemProvided": {
          "description": "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.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "id": "ApiInfo"
    },
    "ListApplicationTemplatesResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        },
        "applicationTemplates": {
          "items": {
            "$ref": "ApplicationTemplate"
          },
          "description": "The list of application templates.",
          "type": "array"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        }
      },
      "id": "ListApplicationTemplatesResponse",
      "description": "Message for response to listing application templates."
    },
    "PreviewOperationMetadata": {
      "description": "Ephemeral metadata depicting the state of the preview operation.",
      "id": "PreviewOperationMetadata",
      "type": "object",
      "properties": {
        "previewLogs": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Location of the preview operation logs in `gs://{bucket}/{object}` format."
        },
        "previewBuild": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with the preview operation."
        },
        "previewStep": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The current step of the preview. The possible steps a preview may be running as returned by the Infrastructure. Manager."
        },
        "resources": {
          "description": "Details of the Resourcess in the deployment.",
          "items": {
            "$ref": "Resource"
          },
          "type": "array"
        }
      }
    },
    "DisplayVariableToggle": {
      "type": "object",
      "properties": {
        "variableValues": {
          "description": "Output only. The value of the variable used to toggle the display of another variable.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "variableType": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default",
            "Boolean",
            "String",
            "Integer"
          ],
          "description": "Output only. The type of the variable used to toggle the display of another variable.",
          "enum": [
            "TOGGLE_VARIABLE_TYPE_UNSPECIFIED",
            "TOGGLE_VARIABLE_TYPE_BOOLEAN",
            "TOGGLE_VARIABLE_TYPE_STRING",
            "TOGGLE_VARIABLE_TYPE_INTEGER"
          ]
        },
        "variable": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the variable used to toggle the display of another variable."
        }
      },
      "id": "DisplayVariableToggle",
      "description": "Display variable toggle."
    },
    "ConnectionSource": {
      "id": "ConnectionSource",
      "type": "object",
      "properties": {
        "source": {
          "description": "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.",
          "type": "string"
        },
        "version": {
          "description": "Required. Version constraint syntax using the same format as module version constraints.",
          "type": "string"
        }
      },
      "description": "Defines the source of a connection."
    },
    "ListCatalogTemplatesResponse": {
      "id": "ListCatalogTemplatesResponse",
      "type": "object",
      "properties": {
        "catalogTemplates": {
          "description": "The list of catalog templates.",
          "items": {
            "$ref": "CatalogTemplate"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "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."
        }
      },
      "description": "Message for response to listing catalog templates."
    },
    "SharedTemplateRevision": {
      "type": "object",
      "properties": {
        "inferredMetadata": {
          "readOnly": true,
          "description": "Output only. Metadata that was automatically inferred from the template content.",
          "$ref": "InferredMetadata"
        },
        "sharedTemplateMetadata": {
          "readOnly": true,
          "description": "Output only. The shared template metadata.",
          "$ref": "TFBlueprintMetadata"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. The annotations of the shared template revision. Key is the annotation name. Value is the annotation value."
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "logicalProducts": {
          "description": "Output only. The Product Main logical product type information.",
          "items": {
            "$ref": "LogicalProduct"
          },
          "readOnly": true,
          "type": "array"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "description": "Optional. The Application Design Center assembly template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        },
        "gcsSourceUri": {
          "type": "string",
          "description": "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].",
          "deprecated": true
        },
        "helmChartMetadata": {
          "readOnly": true,
          "description": "Output only. The helm chart metadata.",
          "$ref": "HelmChartMetadata"
        },
        "templateCategory": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "description": "Output only. The category of the template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "originTemplateRevision": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The shared template revision refers to the following catalog template revision."
        },
        "applicationTemplateRevision": {
          "readOnly": true,
          "description": "Output only. The serialized application template revision.",
          "$ref": "SerializedApplicationTemplate"
        },
        "description": {
          "type": "string",
          "description": "Optional. The shared template revision description."
        },
        "name": {
          "description": "Identifier. The shared template revision name. $sharedTemplate is a server-generated UUID. `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate/revisions/$revision`",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The shared template revision creation timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "applicationParameters": {
          "type": "array",
          "description": "Optional. The values provided for the input variables.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "resourceTypes": {
          "description": "Output only. The resource types present in the template revision.",
          "items": {
            "$ref": "ResourceType"
          },
          "readOnly": true,
          "type": "array"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "iacSource": {
          "description": "Output only. Indicates the IaC source format of this shared template revision.",
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ]
        }
      },
      "id": "SharedTemplateRevision",
      "description": "A read-only template revision that is shared with a space."
    },
    "Framework": {
      "type": "object",
      "properties": {
        "deploymentStatus": {
          "description": "Optional. The deployment status of the framework.",
          "enum": [
            "DEPLOYMENT_STATUS_UNSPECIFIED",
            "DEPLOYED",
            "UNDEPLOYED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Deployment status unspecified.",
            "Framework is deployed.",
            "Framework is undeployed."
          ]
        },
        "active": {
          "type": "boolean",
          "description": "Optional. Whether the framework is active."
        },
        "url": {
          "description": "Optional. The URL to a framework.",
          "type": "string"
        },
        "majorRevisionId": {
          "format": "int32",
          "type": "integer",
          "description": "Optional. The major revision id of the framework."
        },
        "displayName": {
          "type": "string",
          "description": "Optional. The framework display name."
        },
        "description": {
          "description": "Optional. The framework description.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Required. The framework name."
        },
        "parentDomain": {
          "description": "Required. The domain to which this framework belongs.",
          "$ref": "Domain"
        },
        "managedProjectApplicable": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates if the framework is defined in the managed project. Only managed-project frameworks can be manually attached."
        },
        "cloudControlDetails": {
          "type": "array",
          "description": "Optional. The cloud controls that are associated with the framework.",
          "items": {
            "$ref": "CloudControl"
          }
        }
      },
      "id": "Framework",
      "description": "Framework for assessment."
    },
    "Criticality": {
      "id": "Criticality",
      "type": "object",
      "properties": {
        "missionCritical": {
          "deprecated": true,
          "description": "Optional. Indicates mission-critical Application, Service, or Workload. Deprecated: Please refer to type instead.",
          "type": "boolean"
        },
        "level": {
          "description": "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.",
          "deprecated": true,
          "type": "string"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Mission critical service, application or workload.",
            "High impact.",
            "Medium impact.",
            "Low impact."
          ],
          "description": "Required. Criticality Type.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "MISSION_CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ]
        }
      },
      "description": "Criticality of the Application, Service, or Workload"
    },
    "Location": {
      "description": "A resource that represents a Google Cloud location.",
      "id": "Location",
      "type": "object",
      "properties": {
        "locationId": {
          "type": "string",
          "description": "The canonical id for this location. For example: `\"us-east1\"`."
        },
        "name": {
          "type": "string",
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "Service-specific metadata. For example the available capacity at the given location."
        },
        "labels": {
          "type": "object",
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "FetchFrameworksResponse": {
      "description": "Response for FetchFrameworks rpc",
      "type": "object",
      "properties": {
        "frameworks": {
          "type": "array",
          "items": {
            "$ref": "Framework"
          },
          "description": "The list of frameworks."
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      },
      "id": "FetchFrameworksResponse"
    },
    "LogicalProduct": {
      "type": "object",
      "properties": {
        "shortDescription": {
          "description": "Output only. A short description of the logical product.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Output only. The resource name of the logical product. Format: logicalProducts/{logical_product}",
          "readOnly": true,
          "type": "string"
        },
        "title": {
          "description": "Output only. The display name of the logical product.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "LogicalProduct",
      "description": "Represents a Product Main logical product."
    },
    "Attributes": {
      "id": "Attributes",
      "type": "object",
      "properties": {
        "criticality": {
          "description": "Optional. User-defined criticality information.",
          "$ref": "Criticality"
        },
        "operatorOwners": {
          "items": {
            "$ref": "ContactInfo"
          },
          "description": "Optional. Operator team that ensures runtime and operations.",
          "type": "array"
        },
        "businessOwners": {
          "description": "Optional. Business team that ensures user needs are met and value is delivered",
          "items": {
            "$ref": "ContactInfo"
          },
          "type": "array"
        },
        "developerOwners": {
          "description": "Optional. Developer team that owns development and coding.",
          "items": {
            "$ref": "ContactInfo"
          },
          "type": "array"
        },
        "environment": {
          "description": "Optional. User-defined environment information.",
          "$ref": "Environment"
        }
      },
      "description": "Consumer provided attributes."
    },
    "TFBlueprintMetadata": {
      "id": "TFBlueprintMetadata",
      "type": "object",
      "properties": {
        "terraformOutput": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformOutput"
          },
          "description": "Output only. Terraform outputs."
        },
        "uiMetadata": {
          "readOnly": true,
          "description": "Output only. UI metadata for the blueprint.",
          "$ref": "TerraformBlueprintUiMetadata"
        },
        "apis": {
          "items": {
            "type": "string"
          },
          "description": "Output only. APIs that must be enabled to deploy the template, in the form of \"compute.googleapis.com\".",
          "readOnly": true,
          "type": "array"
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Output only. IAM roles required by the service account deploying the template, in the form of \"roles/compute.admin\".",
          "readOnly": true,
          "type": "array"
        },
        "deploymentDuration": {
          "description": "Optional. The time estimate for deploying the blueprint.",
          "type": "string",
          "format": "google-duration"
        },
        "providerVersions": {
          "description": "Output only. Provider versions required to deploy the blueprint.",
          "items": {
            "$ref": "ProviderVersion"
          },
          "readOnly": true,
          "type": "array"
        },
        "terraformInput": {
          "items": {
            "$ref": "TerraformInput"
          },
          "description": "Output only. Terraform inputs.",
          "readOnly": true,
          "type": "array"
        },
        "connections": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInputConnections"
          },
          "description": "Output only. Union of all the Terraform input connections."
        },
        "iconUri": {
          "description": "Output only. The icon URI for the blueprint.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Terraform input and output metadata."
    },
    "ListCatalogTemplateRevisionsResponse": {
      "type": "object",
      "properties": {
        "catalogTemplateRevisions": {
          "type": "array",
          "items": {
            "$ref": "CatalogTemplateRevision"
          },
          "description": "The list of template revisions."
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "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."
        }
      },
      "id": "ListCatalogTemplateRevisionsResponse",
      "description": "Message for response to listing template revisions."
    },
    "ListSharesResponse": {
      "id": "ListSharesResponse",
      "type": "object",
      "properties": {
        "shares": {
          "type": "array",
          "items": {
            "$ref": "Share"
          },
          "description": "The list of shares."
        },
        "nextPageToken": {
          "type": "string",
          "description": "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."
        }
      },
      "description": "Message for response to listing shares of a catalog."
    },
    "RolesAndApisConfig": {
      "id": "RolesAndApisConfig",
      "type": "object",
      "properties": {
        "projectId": {
          "description": "Required. The project ID to which these configurations apply. Format: {project_id}",
          "type": "string"
        },
        "roles": {
          "description": "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.",
          "items": {
            "$ref": "RoleInfo"
          },
          "type": "array"
        },
        "apis": {
          "description": "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.",
          "items": {
            "$ref": "ApiInfo"
          },
          "type": "array"
        }
      },
      "description": "Represents configurations required within a specific project to deploy the application."
    },
    "ListPoliciesResponse": {
      "id": "ListPoliciesResponse",
      "type": "object",
      "properties": {
        "policies": {
          "description": "A list of policies.",
          "items": {
            "$ref": "DesignCenterPolicy"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "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."
        }
      },
      "description": "Message for response to listing policies."
    },
    "ApplicationTemplate": {
      "type": "object",
      "properties": {
        "rootInputVariables": {
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Optional. Root level input variables of the application template."
        },
        "updateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. Application template update timestamp."
        },
        "artifactLocation": {
          "readOnly": true,
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate was last successfully exported.",
          "$ref": "ArtifactLocation"
        },
        "rootOutputVariables": {
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Optional. Root level output variables of the application template.",
          "type": "array"
        },
        "latestRevision": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The latest application template revision."
        },
        "serializedApplicationTemplate": {
          "description": "Output only. The serialized application template.",
          "$ref": "SerializedApplicationTemplate",
          "readOnly": true
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "templateMetadata": {
          "description": "Output only. The input output variables parsed from the imported terraform code.",
          "$ref": "TFBlueprintMetadata",
          "readOnly": true
        },
        "latestSystemRevisionUri": {
          "readOnly": true,
          "type": "string",
          "description": "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": {
          "type": "string",
          "description": "Identifier. Application template name."
        },
        "createTime": {
          "description": "Output only. Application template creation timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "applicationParameters": {
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. Parameters to apply to all components in an application. You can specify projectID and region."
        },
        "compositionType": {
          "type": "string",
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "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.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ],
          "description": "Optional. Immutable. The composition type of the applicationTemplate: STANDARD OR COMPOSITE. This is a create time only param.",
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ]
        },
        "description": {
          "type": "string",
          "description": "Optional. Application template description."
        },
        "displayName": {
          "type": "string",
          "description": "Optional. Application template display name."
        },
        "iacFormat": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "description": "Output only. The IaC format of the application template.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "iacSource": {
          "description": "Output only. Indicates the IaC source format of this application template.",
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ]
        }
      },
      "id": "ApplicationTemplate",
      "description": "Application template resource."
    },
    "GenerateAssessmentReportRequest": {
      "properties": {
        "terraformPlan": {
          "format": "byte",
          "type": "string",
          "description": "Required. Terraform plan bytes."
        },
        "additionalFrameworks": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Additional Frameworks to run assessment against. If empty, run against default frameworks. Frameworks refers to the policies.",
          "type": "array"
        }
      },
      "description": "Deprecated: Use GenerateTerraformPlanAssessmentReportRequest instead. Message for the request to generate a best practice report for a given Terraform plan.",
      "id": "GenerateAssessmentReportRequest",
      "type": "object",
      "deprecated": true
    },
    "HelmChartMetadata": {
      "type": "object",
      "properties": {
        "helmInput": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. Helm Chart inputs.",
          "items": {
            "$ref": "HelmChartInput"
          }
        },
        "helmOutput": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "HelmChartOutput"
          },
          "description": "Output only. Helm Chart outputs."
        }
      },
      "id": "HelmChartMetadata",
      "description": "Helm Chart metadata."
    },
    "SkippedDomain": {
      "description": "Domains skipped during the best practice assessment.",
      "type": "object",
      "properties": {
        "domain": {
          "description": "Output only. Details of the domain skipped.",
          "$ref": "Domain",
          "readOnly": true
        },
        "skipReason": {
          "description": "Output only. Reason for skipping the domain from assessment.",
          "enum": [
            "REASON_UNSPECIFIED",
            "UNAVAILABLE",
            "FAILURE",
            "TIMEOUT"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "No reason specified.",
            "Domain is unavailable.",
            "Domain assessment failed.",
            "Domain assessment timed out."
          ]
        }
      },
      "id": "SkippedDomain"
    },
    "SerializedConnection": {
      "description": "Serialized connection.",
      "type": "object",
      "properties": {
        "destinationComponentUri": {
          "description": "Optional. The destination component URI used to generate the connection.",
          "type": "string"
        },
        "dependencyType": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The dependency type is unspecified.",
            "Data dependency: output parameter of one module is input to another.",
            "Logical dependency: explicitly declared execution order dependency (depends_on)."
          ],
          "description": "Output only. The type of the connection (data or logical).",
          "enum": [
            "CONNECTION_DEPENDENCY_TYPE_UNSPECIFIED",
            "CONNECTION_DEPENDENCY_TYPE_DATA",
            "CONNECTION_DEPENDENCY_TYPE_LOGICAL"
          ]
        },
        "uri": {
          "description": "Optional. The connection URI.",
          "type": "string"
        },
        "sourceComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array"
        },
        "destinationComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        }
      },
      "id": "SerializedConnection"
    },
    "AssessmentFinding": {
      "id": "AssessmentFinding",
      "type": "object",
      "properties": {
        "assessedFrameworkId": {
          "type": "string",
          "description": "Optional. The framework that was assessed."
        },
        "assessedAsset": {
          "description": "Required. Details of the Cloud Asset Inventory asset that was assessed.",
          "$ref": "AssetDetails"
        },
        "findingsUri": {
          "description": "Optional. Link to the findings, if persisted by the domain.",
          "type": "string"
        },
        "sccMetadata": {
          "readOnly": true,
          "description": "Output only. SCC related metadata for the finding.",
          "$ref": "SCCMetadata"
        },
        "remediationStep": {
          "description": "Optional. A description of the steps that users can take to fix the finding.",
          "$ref": "RemediationStep"
        },
        "adcMetadata": {
          "description": "Output only. Metadata related to the Application Design Center with the finding.",
          "$ref": "FindingADCMetadata",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "Optional. Description of the finding."
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Finding ID."
        },
        "additionalNotes": {
          "description": "Optional. A description of the additional details about finding.",
          "type": "string"
        },
        "findingType": {
          "description": "Required. The type of the finding. Findings can be informational, warning, or error.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "WARNING",
            "ERROR"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Warning finding. Deployment will not be blocked.",
            "Error finding. Deployment will be blocked on ERROR."
          ]
        },
        "severity": {
          "description": "Optional. The severity of the finding.",
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Critical severity.",
            "High severity.",
            "Medium severity.",
            "Low severity."
          ]
        },
        "assessedFramework": {
          "description": "Optional. Details of the framework that was assessed.",
          "$ref": "Framework"
        }
      },
      "description": "Details of an Assessment Finding."
    },
    "RegisterDeployedResourcesRequest": {
      "type": "object",
      "properties": {
        "tfstateSignedGcsUri": {
          "type": "string",
          "description": "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."
        },
        "terraformState": {
          "type": "string",
          "description": "The Terraform state (tfstate) content as a raw string. For large state files exceeding 10MB, use the 'tfstate_signed_gcs_uri' field instead."
        },
        "apphubApplication": {
          "description": "Required. The name of the AppHub Application. Format: projects/{project}/locations/{location}/applications/{application}",
          "type": "string"
        },
        "serviceAccount": {
          "type": "string",
          "description": "Optional. The optional Service Account (SA) to use for calling AppHub APIs during registration. If not provided, the End-User Credentials (EUC) will be used. If provided, the EUC must have the 'serviceAccountTokenCreator' role on the SA, and the SA must have the necessary permissions for AppHub registration."
        }
      },
      "id": "RegisterDeployedResourcesRequest",
      "description": "Request message for RegisterDeployedResources method."
    },
    "FetchApplicationAssessmentReportResponse": {
      "description": "Message for response of fetching an application assessment report.",
      "id": "FetchApplicationAssessmentReportResponse",
      "type": "object",
      "properties": {
        "assessmentReport": {
          "description": "Assessment report for the application.",
          "$ref": "AssessmentReport"
        }
      }
    },
    "SerializedPolicy": {
      "id": "SerializedPolicy",
      "type": "object",
      "properties": {
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "policyType": {
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "Compliance framework policy."
          ],
          "description": "Required. Policy type will be used to determine the domain of the policy.",
          "enum": [
            "POLICY_TYPE_UNSPECIFIED",
            "COMPLIANCE_FRAMEWORK"
          ]
        },
        "description": {
          "type": "string",
          "description": "Optional. The serialized policy description. At most 2048 characters."
        },
        "applyConditions": {
          "description": "Optional. The serialized policy apply conditions.",
          "items": {
            "$ref": "ApplyCondition"
          },
          "type": "array"
        },
        "uri": {
          "type": "string",
          "description": "Required. The uri of the policy in application template. Format: `projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/policies/{policy}`"
        },
        "displayName": {
          "type": "string",
          "description": "Optional. The serialized policy display name. The number of characters should be less than 128 characters."
        },
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        }
      },
      "description": "Serialized policy."
    },
    "TerraformModuleConfig": {
      "id": "TerraformModuleConfig",
      "type": "object",
      "properties": {
        "localReferencesEnabled": {
          "type": "boolean",
          "description": "Optional. If set, all the dependent modules will be downloaded from the target repository and referenced locally."
        },
        "gitProxyEnabled": {
          "type": "boolean",
          "description": "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."
        }
      },
      "description": "Configuration on how terraform module should be handled during export."
    },
    "ListComponentsResponse": {
      "type": "object",
      "properties": {
        "components": {
          "type": "array",
          "items": {
            "$ref": "Component"
          },
          "description": "The list of components."
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        },
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "ListComponentsResponse",
      "description": "Message for response to listing components."
    },
    "Resource": {
      "description": "Status of the Resourcess in the deployment.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Output only. The type of the resource.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Identifier. The name of the resource."
        },
        "state": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The default value. This value is used if the state is omitted.",
            "Resource has been planned for reconcile.",
            "Resource is actively reconciling into the intended state.",
            "Resource has reconciled to intended state.",
            "Resource failed to reconcile.",
            "Drift is detected in the resourece state.",
            "Resource is intended state."
          ],
          "description": "Output only. Current state of the resource.",
          "enum": [
            "STATE_UNSPECIFIED",
            "PLANNED",
            "IN_PROGRESS",
            "RECONCILED",
            "FAILED",
            "DRIFTED",
            "INTENDED"
          ]
        }
      },
      "id": "Resource"
    },
    "ListLocationsResponse": {
      "description": "The response message for Locations.ListLocations.",
      "type": "object",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "items": {
            "$ref": "Location"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "id": "ListLocationsResponse"
    },
    "TerraformConfig": {
      "id": "TerraformConfig",
      "type": "object",
      "properties": {
        "tfModuleConfig": {
          "description": "Optional. Configuration on how terraform module should be handled during export.",
          "$ref": "TerraformModuleConfig"
        }
      },
      "description": "Configuration for exporting a resource as Terraform IAC."
    },
    "ConnectionConfig": {
      "type": "object",
      "properties": {
        "sourceComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array"
        },
        "destinationComponentParameters": {
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the destination component."
        },
        "connectionUri": {
          "type": "string",
          "description": "Required. The connection URI."
        }
      },
      "id": "ConnectionConfig",
      "description": "Connection configuration for the application."
    },
    "SCCMetadata": {
      "description": "SCC metadata for the assessment finding.",
      "id": "SCCMetadata",
      "type": "object",
      "properties": {
        "findingClass": {
          "type": "string",
          "description": "Optional. The SCC finding class. Also known as category."
        },
        "findingType": {
          "type": "string",
          "description": "Optional. The SCC finding type."
        }
      }
    },
    "TerraformInputConnections": {
      "type": "object",
      "properties": {
        "cftTemplateUri": {
          "description": "Output only. List of other templates that can be connected to.",
          "readOnly": true,
          "type": "string"
        },
        "cftTemplateVersion": {
          "description": "Output only. Version of the other template that can be connected to.",
          "readOnly": true,
          "type": "string"
        },
        "outputVar": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Output variable name present in Terraform."
        },
        "inputPath": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Input path of the other template that can be connected to."
        }
      },
      "id": "TerraformInputConnections",
      "description": "TerraformInputConnections"
    },
    "TemplateVariable": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Required. Input variable name present in Terraform."
        },
        "connections": {
          "description": "Required. Terraform input connections.",
          "items": {
            "$ref": "TemplateConnections"
          },
          "type": "array"
        }
      },
      "id": "TemplateVariable",
      "description": "TemplateTerraform inputs."
    },
    "TerraformUiOutput": {
      "description": "Terraform blueprint UI output.",
      "type": "object",
      "properties": {
        "outputMessage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Message to be displayed in the UI."
        },
        "terraformUiOutputs": {
          "description": "Output only. Visibility of the output.",
          "additionalProperties": {
            "$ref": "TerraformUiOutputDisplay"
          },
          "readOnly": true,
          "type": "object"
        }
      },
      "id": "TerraformUiOutput"
    },
    "Environment": {
      "description": "Environment of the Application, Service, or Workload",
      "type": "object",
      "properties": {
        "environment": {
          "type": "string",
          "deprecated": true,
          "description": "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": {
          "description": "Required. Environment Type.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "PRODUCTION",
            "STAGING",
            "TEST",
            "DEVELOPMENT"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Production environment.",
            "Staging environment.",
            "Test environment.",
            "Development environment."
          ]
        }
      },
      "id": "Environment"
    },
    "Policy": {
      "description": "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 \u003c 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 \u003c 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/).",
      "id": "Policy",
      "type": "object",
      "properties": {
        "version": {
          "type": "integer",
          "format": "int32",
          "description": "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": {
          "description": "Specifies cloud audit logging configuration for this policy.",
          "items": {
            "$ref": "AuditConfig"
          },
          "type": "array"
        },
        "etag": {
          "type": "string",
          "format": "byte",
          "description": "`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."
        },
        "bindings": {
          "type": "array",
          "items": {
            "$ref": "Binding"
          },
          "description": "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`."
        }
      }
    },
    "ImportApplicationTemplateIaCResponse": {
      "type": "object",
      "properties": {
        "applicationTemplate": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "ApplicationTemplate"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "ImportIaCError"
          },
          "description": "Errors encountered during import."
        },
        "state": {
          "description": "The state of the import.",
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ]
        }
      },
      "id": "ImportApplicationTemplateIaCResponse",
      "description": "Response message for ImportApplicationTemplateIaC method."
    },
    "SharedTemplate": {
      "id": "SharedTemplate",
      "type": "object",
      "properties": {
        "latestRevisionId": {
          "description": "Output only. Latest revision of the shared template.",
          "readOnly": true,
          "type": "string"
        },
        "templateCategory": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "description": "Required. The category of the template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "name": {
          "type": "string",
          "description": "Identifier. The shared template name. `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate`"
        },
        "createTime": {
          "description": "Output only. The shared template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The shared template update timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Optional. The shared template description."
        },
        "displayName": {
          "description": "Optional. The shared template display name.",
          "type": "string"
        },
        "type": {
          "description": "Optional. The Application Design Center assembly template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ]
        },
        "originTemplate": {
          "description": "Output only. The origin template of the shared template.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "A read-only template that is shared with a space."
    },
    "Status": {
      "id": "Status",
      "type": "object",
      "properties": {
        "code": {
          "format": "int32",
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code."
        },
        "message": {
          "description": "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.",
          "type": "string"
        },
        "details": {
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            }
          }
        }
      },
      "description": "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)."
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "properties": {
        "metadata": {
          "description": "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.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "done": {
          "description": "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.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "name": {
          "description": "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}`.",
          "type": "string"
        },
        "response": {
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "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`."
        }
      },
      "id": "Operation"
    },
    "ListApplicationTemplateSystemRevisionsResponse": {
      "description": "Message for response to listing application template system revisions.",
      "type": "object",
      "properties": {
        "applicationTemplateSystemRevisions": {
          "type": "array",
          "items": {
            "$ref": "ApplicationTemplateSystemRevision"
          },
          "description": "The list of application template system revisions."
        },
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Locations that could not be reached.",
          "type": "array"
        }
      },
      "id": "ListApplicationTemplateSystemRevisionsResponse"
    },
    "TemplateRequirements": {
      "description": "TemplateRequirements defines the roles required and the associated services that need to be enabled to provision Template resources.",
      "type": "object",
      "properties": {
        "providerVersions": {
          "type": "array",
          "description": "Required. Required provider versions.",
          "items": {
            "$ref": "ProviderVersion"
          }
        },
        "roles": {
          "description": "Required. All roles required for the component",
          "items": {
            "$ref": "TemplateRoles"
          },
          "type": "array"
        }
      },
      "id": "TemplateRequirements"
    },
    "ProviderVersion": {
      "id": "ProviderVersion",
      "type": "object",
      "properties": {
        "source": {
          "description": "Output only. The provider source in the format: [hostname]/[namespace]/[name]. Hostname is optional, and defaults to the Terraform registry.",
          "readOnly": true,
          "type": "string"
        },
        "version": {
          "description": "Output only. Version constraint string.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "ProviderVersion defines the required version for a provider."
    },
    "Application": {
      "description": "Represents the application resource.",
      "id": "Application",
      "type": "object",
      "properties": {
        "serviceAccount": {
          "description": "Optional. Your own service account that you use to deploy an application.",
          "type": "string"
        },
        "templateMetadata": {
          "readOnly": true,
          "description": "Output only. The input output variables parsed from the imported terraform code.",
          "$ref": "TFBlueprintMetadata"
        },
        "serializedApplicationTemplate": {
          "description": "Output only. [Output only] Serialized application template.",
          "$ref": "SerializedApplicationTemplate",
          "readOnly": true
        },
        "compositeApplicationParameters": {
          "description": "Optional. Parameters that are required for composite applications.",
          "$ref": "CompositeApplicationParameters"
        },
        "attributes": {
          "description": "Optional. Attributes of the application.",
          "$ref": "Attributes"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this application was last successfully exported.",
          "$ref": "ArtifactLocation",
          "readOnly": true
        },
        "connectionConfigs": {
          "description": "Optional. Connection configuration for the application.",
          "items": {
            "$ref": "ConnectionConfig"
          },
          "type": "array"
        },
        "appParameters": {
          "description": "Optional. A list of parameters to attach to the deployment source object, which is a catalog entry or application template snapshot.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Create timestamp."
        },
        "deploymentTarget": {
          "description": "Optional. The deployment target of the application.",
          "$ref": "DeploymentTarget"
        },
        "scope": {
          "description": "Required. Scope of the application.",
          "$ref": "Scope"
        },
        "updatedTemplateRevision": {
          "description": "Output only. The updated template revision because of which the application is outdated.",
          "$ref": "UpdatedTemplateRevision",
          "readOnly": true
        },
        "deploymentMetadata": {
          "readOnly": true,
          "description": "Output only. Deployment metadata of the application.",
          "$ref": "DeploymentMetadata"
        },
        "state": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified application deployment state.",
            "Application is in draft.",
            "New application deployment is in progress.",
            "Update application deployment is in progress.",
            "Delete application deployment is in progress.",
            "Application deployment is completed.",
            "Application deployment is deleted.",
            "Application deployment is failed.",
            "Application deployment is in progress."
          ],
          "description": "Output only. Deployment state of the application.",
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED",
            "DEPLOYING"
          ]
        },
        "type": {
          "description": "Optional. The type of the application.",
          "enum": [
            "APPLICATION_TYPE_UNSPECIFIED",
            "TERRAFORM_APP",
            "HELM_APP"
          ],
          "type": "string",
          "enumDescriptions": [
            "Application type is unspecified.",
            "Application type is terraform application.",
            "Application type is helm application."
          ]
        },
        "deploymentRegion": {
          "type": "string",
          "description": "Optional. The region where the application is deployed."
        },
        "rolesApisConfig": {
          "type": "array",
          "description": "Optional. Project-specific configurations required for application deployment, including IAM roles and APIs. The list can contain up to 100 items.",
          "items": {
            "$ref": "RolesAndApisConfig"
          }
        },
        "updateTime": {
          "description": "Output only. Update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "deploymentRevision": {
          "description": "Output only. [Output only] Optional Infra Manager deployment Id with revision",
          "readOnly": true,
          "type": "string"
        },
        "previewReference": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Preview reference for the application."
        },
        "deploymentProject": {
          "type": "string",
          "description": "Optional. Deployment project of the application."
        },
        "iacSource": {
          "description": "Output only. Indicates the IaC source format of this application.",
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ]
        },
        "projectParameters": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. List of project parameters for the application.",
          "items": {
            "$ref": "ProjectParameters"
          }
        },
        "importExistingResources": {
          "type": "boolean",
          "description": "Optional. Import existing resources into the application."
        },
        "deploymentGroupMetadata": {
          "description": "Output only. The deployment group metadata of the application. This is applicable only for composite applications.",
          "$ref": "DeploymentGroupMetadata",
          "readOnly": true
        },
        "apphubApplication": {
          "description": "Output only. The App Hub App associated with the application.",
          "readOnly": true,
          "type": "string"
        },
        "componentParameters": {
          "type": "array",
          "items": {
            "$ref": "ComponentParameters"
          },
          "description": "Optional. A list of component parameters to associate with the application."
        },
        "displayName": {
          "description": "Optional. Display name of the application.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Description of the application.",
          "type": "string"
        },
        "compositionType": {
          "description": "Output only. The composition type of the application: STANDARD OR COMPOSITE.",
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "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.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ]
        },
        "name": {
          "type": "string",
          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}"
        },
        "paramsUpdateStrategy": {
          "description": "Optional. Specifies the strategy to use when updating the application parameters while updating the application template revision.",
          "enum": [
            "UPDATE_STRATEGY_UNSPECIFIED",
            "REPLACE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Retains the existing value for the field.",
            "Replaces the existing field values with the provided ones."
          ]
        },
        "source": {
          "description": "Required. The application deployment source.",
          "$ref": "DeploymentSource"
        }
      }
    },
    "GenerateApplicationTemplateIaCResponse": {
      "description": "Response message for GenerateApplicationTemplateIaC method.",
      "id": "GenerateApplicationTemplateIaCResponse",
      "type": "object",
      "properties": {
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template.",
          "$ref": "RootModulesMetadata"
        },
        "gcsUri": {
          "type": "string",
          "deprecated": true,
          "description": "DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI of the generated IaC."
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        }
      }
    },
    "TemplateInfo": {
      "id": "TemplateInfo",
      "type": "object",
      "properties": {
        "actuationTool": {
          "description": "Required. IaCFormatInfo defines the actuation tool used to provision the Template.",
          "$ref": "IacFormatInfo"
        }
      },
      "description": "TemplateInfo provides the actuation tool information."
    },
    "AlternateDefaultInput": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Default",
            "A more secure default.",
            "A default specifically needed for Application Design center."
          ],
          "description": "Optional. Type of alternate default.",
          "enum": [
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_DC"
          ]
        },
        "value": {
          "description": "Optional. Value of the alternate default.",
          "type": "any"
        }
      },
      "id": "AlternateDefaultInput",
      "description": "Alternate default input for a UI."
    },
    "DomainAssessmentReport": {
      "description": "The assessment report for each domain.",
      "id": "DomainAssessmentReport",
      "type": "object",
      "properties": {
        "assessedFrameworks": {
          "items": {
            "$ref": "AssessedFramework"
          },
          "description": "Required. List of frameworks assessed and their findings.",
          "type": "array"
        },
        "reportScore": {
          "readOnly": true,
          "description": "Output only. Score card associated with the report.",
          "$ref": "ScoreCard"
        },
        "status": {
          "description": "Optional. Status of assessment report.",
          "enum": [
            "STATUS_UNSPECIFIED",
            "PENDING",
            "COMPLETED",
            "FAILED"
          ],
          "type": "string",
          "enumDescriptions": [
            "No status specified.",
            "Pending domain assessment.",
            "Complete domain assessment.",
            "Failed domain assessment."
          ]
        },
        "additionalInfo": {
          "type": "string",
          "description": "Optional. Additional information about the report."
        },
        "reportName": {
          "description": "Optional. The report name as per Application Design Center.",
          "type": "string"
        },
        "domainId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ID of the domain."
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The time at which the report was created."
        },
        "adcMetadata": {
          "readOnly": true,
          "description": "Output only. Specific information and metadata.",
          "$ref": "AdcMetadata"
        },
        "domainRedirectInfo": {
          "description": "Optional. Information on how to redirect to domain.",
          "$ref": "DomainRedirectInfo"
        },
        "updateTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time at which the report was last updated."
        },
        "skippedAssetTypes": {
          "description": "Optional. List of asset types skipped during assessment.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "RootInputVariable": {
      "id": "RootInputVariable",
      "type": "object",
      "properties": {
        "defaultValue": {
          "description": "Default value of the input variable.",
          "type": "any"
        },
        "value": {
          "type": "any",
          "description": "Value for the input variable."
        },
        "alias": {
          "description": "Alias for the variable name.",
          "type": "string"
        },
        "variableType": {
          "type": "string",
          "description": "Type of the input variable."
        },
        "variable": {
          "type": "string",
          "description": "Name of the input variable."
        }
      },
      "description": "Input variable of a root module."
    },
    "CatalogTemplate": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The catalog template name in following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "description": {
          "type": "string",
          "description": "Optional. The catalog template description."
        },
        "latestRevisionId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Latest revision of the template."
        },
        "templateCategory": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "description": "Required. The category of the Application Design Center application template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "uuid": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The template revisions UUID."
        },
        "displayName": {
          "description": "Optional. The display name of a catalog template.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "description": "Optional. The Application Design Center application template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        }
      },
      "id": "CatalogTemplate",
      "description": "A template inside a catalog."
    },
    "HelmChartOutput": {
      "id": "HelmChartOutput",
      "type": "object",
      "properties": {
        "value": {
          "description": "Output only. Type of output.",
          "readOnly": true,
          "type": "any"
        },
        "helmOutputVariable": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Output variable name present."
        },
        "description": {
          "description": "Output only. Description of the variable.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Helm Chart outputs."
    },
    "InputVariableAlias": {
      "type": "object",
      "properties": {
        "variable": {
          "description": "Required. Name of the input variable inside the component's underlying template or module.",
          "type": "string"
        },
        "alias": {
          "type": "string",
          "description": "Required. Alias for the variable name to be exposed at the root level of the composite template."
        }
      },
      "id": "InputVariableAlias",
      "description": "Input variable alias mapping for a component in a composite application template."
    },
    "AdcMetadata": {
      "description": "Application Design Center specific information and metadata.",
      "type": "object",
      "properties": {
        "catalogTemplateRevisionUri": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. CatalogTemplateRevision URI"
        },
        "applicationTemplateUri": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. ApplicationTemplate URI"
        },
        "applicationUri": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Application URI"
        },
        "spaceUri": {
          "description": "Output only. Space URI",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "AdcMetadata"
    },
    "AssessedFramework": {
      "id": "AssessedFramework",
      "type": "object",
      "properties": {
        "scoreCard": {
          "description": "Optional. Score card associated with the report.",
          "$ref": "ScoreCard"
        },
        "framework": {
          "description": "Required. The framework that was assessed.",
          "$ref": "Framework"
        },
        "skipped": {
          "type": "boolean",
          "description": "Optional. Whether the framework was skipped during assessment."
        },
        "skippedReason": {
          "description": "Optional. Reason for skipping the framework during assessment.",
          "type": "string"
        },
        "findings": {
          "type": "array",
          "items": {
            "$ref": "AssessmentFinding"
          },
          "description": "Required. A list of every Finding found during the assessment."
        }
      },
      "description": "Framework assessed and their findings."
    },
    "DisplayVariable": {
      "id": "DisplayVariable",
      "type": "object",
      "properties": {
        "max": {
          "format": "float",
          "type": "number",
          "description": "Optional. Maximum value for numeric types."
        },
        "title": {
          "description": "Required. Visible title for the variable on the UI.",
          "type": "string"
        },
        "validation": {
          "type": "string",
          "description": "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."
        },
        "enumValueLabels": {
          "type": "array",
          "items": {
            "$ref": "ValueLabelInput"
          },
          "description": "Optional. Labels for enum values. Values must be UTF-8 text with no markup, and at most 64 characters."
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          },
          "description": "Optional. properties is a map defining all the fields of the input variable."
        },
        "name": {
          "type": "string",
          "description": "Required. The variable name from the corresponding standard Template file."
        },
        "min": {
          "format": "float",
          "type": "number",
          "description": "Optional. Minimum value for numeric types."
        },
        "level": {
          "description": "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.",
          "format": "int32",
          "type": "integer"
        },
        "subtext": {
          "type": "string",
          "description": "Optional. Property subtext, displayed below the title."
        },
        "regexValidation": {
          "type": "string",
          "description": "Optional. Regex based validation rules for the variable."
        },
        "alternateDefaults": {
          "type": "array",
          "description": "Optional. Alternate defaults for the input.",
          "items": {
            "$ref": "AlternateDefaultInput"
          }
        }
      },
      "description": "Additional display specific Template pertaining to a particular input variable."
    },
    "DeploymentFailureResolutionInfo": {
      "id": "DeploymentFailureResolutionInfo",
      "type": "object",
      "properties": {
        "resolutionMessage": {
          "description": "Output only. Elaborative error resolution message.",
          "readOnly": true,
          "type": "string"
        },
        "resolutionLinkText": {
          "description": "Output only. Call to action link text.",
          "readOnly": true,
          "type": "string"
        },
        "resolutionLink": {
          "description": "Output only. Link for the call to action.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "The call to action associated with the deployment issue."
    },
    "ListSharedTemplateRevisionsResponse": {
      "description": "Message for response to listing shared templates.",
      "id": "ListSharedTemplateRevisionsResponse",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "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": {
          "type": "array",
          "items": {
            "$ref": "SharedTemplateRevision"
          },
          "description": "The list of shared templates."
        }
      }
    },
    "RegisterDeployedApplicationRequest": {
      "type": "object",
      "properties": {
        "terraformState": {
          "description": "The Terraform state (tfstate) content as a raw string. For large state files exceeding 10MB, use the 'tfstate_signed_gcs_uri' field instead.",
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. The optional Service Account (SA) to use for calling AppHub APIs during registration. If not provided, the End-User Credentials (EUC) will be used. If provided, the EUC must have the 'serviceAccountTokenCreator' role on the SA, and the SA must have the necessary permissions for AppHub registration.",
          "type": "string"
        },
        "tfstateSignedGcsUri": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "RegisterDeployedApplicationRequest",
      "description": "Request message for RegisterDeployedApplication method."
    },
    "RemediationStep": {
      "description": "Remediation steps that can be taken to rectify the finding.",
      "id": "RemediationStep",
      "type": "object",
      "properties": {
        "remediationSteps": {
          "items": {
            "type": "string"
          },
          "description": "Required. A description of the steps that users can take to remediate the findings.",
          "type": "array"
        },
        "remediationDocumentationUrl": {
          "type": "string",
          "description": "Optional. Remediation documentation URL."
        },
        "note": {
          "type": "string",
          "description": "Optional. Any other note related to the remediation."
        }
      }
    },
    "ValueLabelInput": {
      "description": "Value label input for a UI.",
      "id": "ValueLabelInput",
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "Optional. Value of the enum."
        },
        "label": {
          "description": "Optional. Label of the enum.",
          "type": "string"
        }
      }
    },
    "TemplateUi": {
      "description": "TemplateUi defines the UI related information for the Template.",
      "id": "TemplateUi",
      "type": "object",
      "properties": {
        "input": {
          "description": "Required. The top-level input section that defines the list of variables and their sections on the deployment page.",
          "$ref": "TemplateUiInput"
        },
        "runtime": {
          "description": "Optional. The top-level output section that defines the list of outputs and their visibility on the deployment page.",
          "$ref": "TemplateUiOutput"
        }
      }
    },
    "Empty": {
      "description": "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); }",
      "type": "object",
      "properties": {},
      "id": "Empty"
    },
    "Parameter": {
      "type": "object",
      "properties": {
        "readOnly": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates if the parameter is read-only (driven by expression)."
        },
        "key": {
          "description": "Required. The key of the parameter.",
          "type": "string"
        },
        "value": {
          "description": "Optional. The value of the parameter.",
          "type": "any"
        }
      },
      "id": "Parameter",
      "description": "Parameter resource."
    },
    "DeployApplicationRequest": {
      "description": "Message for deploying an application.",
      "id": "DeployApplicationRequest",
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "Optional. If set to true, the request is validated, but no actual deployment will occur. See https://google.aip.dev/163 for more details.",
          "type": "boolean"
        },
        "serviceAccount": {
          "description": "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}",
          "type": "string"
        },
        "replace": {
          "type": "boolean",
          "description": "Optional. Flag to update the existing deployment. If not set or false, deploy will fail if application `state` is in the `DEPLOYED` state."
        },
        "workerPool": {
          "description": "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.",
          "type": "string"
        }
      }
    },
    "DeployedResource": {
      "type": "object",
      "properties": {
        "resourceId": {
          "type": "string",
          "description": "Required. The full resource name of the deployed GCP resource. Example: projects/my-project/locations/us-central1-a/instances/my-instance"
        },
        "location": {
          "type": "string",
          "description": "Optional. The location of the deployed resource."
        },
        "project": {
          "type": "string",
          "description": "Optional. The project ID of the deployed resource."
        }
      },
      "id": "DeployedResource",
      "description": "DeployedResource represents a single deployed GCP resource."
    },
    "CancelOperationRequest": {
      "id": "CancelOperationRequest",
      "type": "object",
      "properties": {},
      "description": "The request message for Operations.CancelOperation."
    },
    "AppHubApplicationParameters": {
      "description": "App Hub application parameters.",
      "type": "object",
      "properties": {
        "applicationId": {
          "type": "string",
          "description": "Optional. The App Hub application ID."
        },
        "location": {
          "description": "Optional. The App Hub application location. Only used for applications with REGIONAL scope.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. The App Hub application attributes.",
          "$ref": "Attributes"
        },
        "scope": {
          "description": "Optional. The App Hub application scope.",
          "$ref": "Scope"
        },
        "hostProjectId": {
          "type": "string",
          "description": "Optional. The host project ID where the App Hub application is created."
        }
      },
      "id": "AppHubApplicationParameters"
    },
    "TemplateUiOutput": {
      "description": "TemplateUiOutput defines the list of outputs and their visibility on the deployment page.",
      "type": "object",
      "properties": {
        "outputMessage": {
          "type": "string",
          "description": "Optional. Message to be displayed in the UI."
        },
        "outputs": {
          "type": "object",
          "description": "Required. outputs is a map defining all outputs on the UI.",
          "additionalProperties": {
            "$ref": "TemplateUiOutputDisplayVariable"
          }
        }
      },
      "id": "TemplateUiOutput"
    },
    "GitReference": {
      "description": "The Git reference. Can be a commit SHA, branch name, or tag name.",
      "id": "GitReference",
      "type": "object",
      "properties": {
        "commitSha": {
          "description": "Optional. The full SHA hash of a specific commit from which content should be read.",
          "type": "string"
        },
        "branch": {
          "description": "Optional. The name of the branch from which content should be read. For example: \"main\"",
          "type": "string"
        },
        "refTag": {
          "type": "string",
          "description": "Optional. The reference tag from which content should be read. For example: \"v1.2.3\""
        }
      }
    },
    "RootModuleDependency": {
      "description": "Root module dependency.",
      "id": "RootModuleDependency",
      "type": "object",
      "properties": {
        "rootModuleId": {
          "type": "string",
          "description": "Identifier of the root module."
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Parameters associated with this dependency."
        }
      }
    },
    "ListSpacesResponse": {
      "description": "Results returned from projects.locations.spaces.list.",
      "type": "object",
      "properties": {
        "spaces": {
          "type": "array",
          "items": {
            "$ref": "Space"
          },
          "description": "A list of spaces."
        },
        "nextPageToken": {
          "type": "string",
          "description": "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."
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Locations that could not be reached."
        }
      },
      "id": "ListSpacesResponse"
    },
    "TerraformUiInputDisplayVariable": {
      "description": "Terraform blueprint UI input display variable.",
      "type": "object",
      "properties": {
        "min": {
          "format": "float",
          "readOnly": true,
          "type": "number",
          "description": "Output only. Minimum value for numeric types."
        },
        "level": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "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."
        },
        "subtext": {
          "description": "Output only. Property subtext, displayed below the title.",
          "readOnly": true,
          "type": "string"
        },
        "regexValidation": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Regex based validation rules for the variable."
        },
        "displayName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Display name of the input."
        },
        "alternateDefaults": {
          "items": {
            "$ref": "AlternateDefault"
          },
          "description": "Output only. Alternate defaults for the input.",
          "readOnly": true,
          "type": "array"
        },
        "title": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Title of the input."
        },
        "toggleUsingVariables": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. Variables used to toggle the display of another variable.",
          "items": {
            "$ref": "DisplayVariableToggle"
          }
        },
        "max": {
          "readOnly": true,
          "type": "number",
          "format": "float",
          "description": "Output only. Maximum value for numeric types."
        },
        "validation": {
          "readOnly": true,
          "type": "string",
          "description": "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."
        },
        "enumValueLabels": {
          "items": {
            "$ref": "ValueLabel"
          },
          "description": "Output only. Labels for enum values. Values must be UTF-8 text with no markup, and at most 64 characters.",
          "readOnly": true,
          "type": "array"
        },
        "properties": {
          "readOnly": true,
          "type": "object",
          "description": "Output only. A map that defines all fields of the input variable.",
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          }
        }
      },
      "id": "TerraformUiInputDisplayVariable"
    },
    "DeploymentSource": {
      "id": "DeploymentSource",
      "type": "object",
      "properties": {
        "applicationTemplateRevision": {
          "description": "Application template revision URI.",
          "type": "string"
        },
        "sharedTemplateRevisionUri": {
          "type": "string",
          "description": "Shared template revision URI."
        }
      },
      "description": "Source template information for the deployment."
    },
    "GenerateApplicationAssessmentReportRequest": {
      "description": "Message for generating an application assessment report.",
      "id": "GenerateApplicationAssessmentReportRequest",
      "type": "object",
      "properties": {}
    },
    "CodeRange": {
      "description": "CodeRange represents a portion of code.",
      "id": "CodeRange",
      "type": "object",
      "properties": {
        "start": {
          "description": "Output only. Start position.",
          "$ref": "CodePosition",
          "readOnly": true
        },
        "end": {
          "readOnly": true,
          "description": "Output only. End position.",
          "$ref": "CodePosition"
        }
      }
    },
    "TerraformOutput": {
      "id": "TerraformOutput",
      "type": "object",
      "properties": {
        "type": {
          "readOnly": true,
          "type": "any",
          "description": "Output only. Type of Terraform output."
        },
        "terraformOutputVariable": {
          "description": "Output only. Output variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Output only. Description of the Terraform varaiable.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Terraform outputs."
    },
    "TerraformInput": {
      "id": "TerraformInput",
      "type": "object",
      "properties": {
        "terraformInputVariable": {
          "description": "Output only. Input variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        },
        "connections": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInputConnections"
          },
          "description": "Output only. Terraform input connections."
        },
        "validationRules": {
          "items": {
            "$ref": "TerraformVariableValidation"
          },
          "description": "Optional. Optional validation rules defined on the variable.",
          "type": "array"
        },
        "description": {
          "description": "Output only. Terraform variable description.",
          "readOnly": true,
          "type": "string"
        },
        "sensitive": {
          "type": "boolean",
          "description": "Optional. Indicates if the Terraform variable is sensitive."
        },
        "type": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Terraform input data type."
        },
        "defaultValue": {
          "readOnly": true,
          "type": "any",
          "description": "Output only. The default value of the Terraform input variable."
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "description": "Terraform inputs."
    },
    "TemplateUiInput": {
      "description": "TemplateUiInput defines the list of variables and their sections on the deployment page.",
      "type": "object",
      "properties": {
        "variables": {
          "additionalProperties": {
            "$ref": "DisplayVariable"
          },
          "description": "Required. variables is a map defining all inputs on the UI.",
          "type": "object"
        }
      },
      "id": "TemplateUiInput"
    },
    "IacFormatInfo": {
      "description": "IacFormatInfo defines the actuation tool used to provision the Template.",
      "id": "IacFormatInfo",
      "type": "object",
      "properties": {
        "flavor": {
          "type": "string",
          "description": "Required. Flavor is the type of the actuation tool."
        },
        "version": {
          "type": "string",
          "description": "Required. Required version for the actuation tool. required_version = \"\u003e= 0.13\""
        }
      }
    },
    "ImportIaCError": {
      "id": "ImportIaCError",
      "type": "object",
      "properties": {
        "resourceAddress": {
          "description": "Output only. The resource address of the error.",
          "readOnly": true,
          "type": "string"
        },
        "range": {
          "description": "Output only. The code portion where this error occurs.",
          "$ref": "CodeRange",
          "readOnly": true
        },
        "errorCode": {
          "description": "Output only. Specific error code for the import error.",
          "enum": [
            "ERROR_CODE_UNSPECIFIED",
            "ERROR_CODE_SYNTAX_ERROR",
            "ERROR_CODE_UNSUPPORTED_BLOCK_TYPE",
            "ERROR_CODE_TOP_LEVEL_ATTRIBUTE",
            "ERROR_CODE_UNSUPPORTED_MODULE",
            "ERROR_CODE_MODULE_UNSUPPORTED_ATTRIBUTE_ADDED",
            "ERROR_CODE_MODULE_REQUIRED_ATTRIBUTE_REMOVED",
            "ERROR_CODE_PARAMETER_VALUE_INVALID",
            "ERROR_CODE_UNSUPPORTED_VARIABLE_CHANGE",
            "ERROR_CODE_UNSUPPORTED_OUTPUT_CHANGE",
            "ERROR_CODE_UNSUPPORTED_PROVIDER_CHANGE",
            "ERROR_CODE_UNSUPPORTED_TFVAR_CHANGE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "HCL Syntax errors (e.g. unclosed blocks, bad characters)",
            "Top-level block is e.g. \"resource\", \"data\", \"locals\"",
            "Attributes defined outside of allowed blocks",
            "Module not present in catalog",
            "Attribute defined inside module that is not in the shared template",
            "Mandatory attribute of shared template is missing in module block",
            "Value fails shared template schema checks (regex, range, etc.)",
            "Variable in variables.tf is added, removed or schema changed",
            "Output in outputs.tf is added, removed or schema changed",
            "Provider in providers.tf has added blocks or modified attributes",
            "Value modified for variables defined in terraform.tfvars"
          ]
        },
        "type": {
          "description": "Output only. The type of error.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "INVALID",
            "NOT_SUPPORTED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The change is invalid. Example: a string value provided for a number input parameter type, which would be caught by Terraform validation.",
            "The change is not supported. Example: a user directly adding a Terraform resource in main.tf that Design Center does not support importing."
          ]
        },
        "description": {
          "description": "Output only. The description of the error.",
          "readOnly": true,
          "type": "string"
        },
        "file": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The file where the error has occurred."
        }
      },
      "description": "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 }"
    },
    "TerraformUiOutputDisplay": {
      "type": "object",
      "properties": {
        "visibility": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ],
          "description": "Output only. Visibility of the output.",
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ]
        }
      },
      "id": "TerraformUiOutputDisplay",
      "description": "Terraform blueprint UI output display."
    },
    "Share": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Identifier. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`"
        },
        "destinationSpace": {
          "description": "Required. The space resource path to which the catalog is shared. Format is `projects/$project/locations/$location/spaces/$space`",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The share creation timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of the share.",
          "enum": [
            "STATE_UNSPECIFIED",
            "IN_SYNC",
            "OUT_OF_SYNC"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The state of the share is unknown.",
            "The share is in sync with the shared template catalog.",
            "The share is out of sync with the shared template catalog."
          ]
        }
      },
      "id": "Share",
      "description": "A catalog share between spaces."
    },
    "DomainRedirectInfo": {
      "description": "Information on how to redirect to domain.",
      "type": "object",
      "properties": {
        "url": {
          "description": "Required. URL to the domain page.",
          "type": "string"
        },
        "urlText": {
          "description": "Required. Text to display in UI on the redirect URL.",
          "type": "string"
        },
        "openInSameTab": {
          "description": "Optional. Flag to open the URL in new tab. Default: false.",
          "type": "boolean"
        }
      },
      "id": "DomainRedirectInfo"
    },
    "RegisterApphubResourcesRequest": {
      "description": "Request message for RegisterApphubResources method.",
      "id": "RegisterApphubResourcesRequest",
      "type": "object",
      "properties": {
        "deployedResources": {
          "type": "array",
          "items": {
            "$ref": "DeployedResource"
          },
          "description": "Optional. The list of deployed GCP resources to register."
        },
        "apphubApplicationUri": {
          "type": "string",
          "description": "The resource uri of the App Hub application. Used for registering resources of an application template. Format: projects/{project}/locations/{location}/applications/{application}"
        },
        "adcApplicationUri": {
          "description": "The resource uri of the Application. Used for registering resources of an application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
          "type": "string"
        }
      }
    },
    "GenerateApplicationIaCResponse": {
      "description": "Response message for GenerateApplicationIaC method.",
      "id": "GenerateApplicationIaCResponse",
      "type": "object",
      "properties": {
        "gcsUri": {
          "type": "string",
          "deprecated": true,
          "description": "DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI of the generated IaC."
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application.",
          "$ref": "RootModulesMetadata"
        }
      }
    },
    "SetIamPolicyRequest": {
      "description": "Request message for `SetIamPolicy` method.",
      "type": "object",
      "properties": {
        "policy": {
          "description": "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.",
          "$ref": "Policy"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "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\"`"
        }
      },
      "id": "SetIamPolicyRequest"
    },
    "Catalog": {
      "id": "Catalog",
      "type": "object",
      "properties": {
        "description": {
          "description": "Optional. The catalog description.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Identifier. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`"
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The catalog creation timestamp."
        },
        "updateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The catalog update timestamp."
        },
        "displayName": {
          "type": "string",
          "description": "Optional. The catalog display name."
        }
      },
      "description": "A catalog is a collection of templates."
    },
    "ListCatalogsResponse": {
      "description": "Results returned from catalogs.list.",
      "id": "ListCatalogsResponse",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "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": {
          "items": {
            "$ref": "Catalog"
          },
          "description": "A list of catalogs",
          "type": "array"
        }
      }
    },
    "ImportApplicationIaCRequest": {
      "type": "object",
      "properties": {
        "gcsUri": {
          "type": "string",
          "description": "Optional. The Cloud Storage URI of the terraform code."
        },
        "allowPartialImport": {
          "description": "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.",
          "type": "boolean"
        },
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        }
      },
      "id": "ImportApplicationIaCRequest",
      "description": "Request message for ImportApplicationIaC method."
    },
    "PreviewApplicationRequest": {
      "description": "Message for previewing an application.",
      "type": "object",
      "properties": {
        "workerPool": {
          "description": "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.",
          "type": "string"
        },
        "serviceAccount": {
          "description": "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}",
          "type": "string"
        }
      },
      "id": "PreviewApplicationRequest"
    },
    "Space": {
      "description": "Space is a top level resource for managing teams building applications through Application Design Center.",
      "id": "Space",
      "type": "object",
      "properties": {
        "enableGcpSharedTemplates": {
          "description": "Optional. Flag to enable Google opinionated shared templates.",
          "type": "boolean"
        },
        "displayName": {
          "type": "string",
          "description": "Optional. Display name for the space."
        },
        "name": {
          "description": "Identifier. The space name.",
          "type": "string"
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. Space creation timestamp."
        },
        "tags": {
          "description": "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.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "updateTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Space update timestamp"
        },
        "gcsBucket": {
          "type": "string",
          "description": "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}."
        },
        "description": {
          "type": "string",
          "description": "Optional. Description for the space."
        }
      }
    },
    "TemplateRoles": {
      "description": "Template Roles provide the level and roles",
      "type": "object",
      "properties": {
        "level": {
          "description": "Required. Level of the role.",
          "type": "string"
        },
        "roles": {
          "type": "array",
          "description": "Required. List of roles.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "TemplateRoles"
    },
    "AuditConfig": {
      "type": "object",
      "properties": {
        "service": {
          "type": "string",
          "description": "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": {
          "type": "array",
          "description": "The configuration for logging of each type of permission.",
          "items": {
            "$ref": "AuditLogConfig"
          }
        }
      },
      "id": "AuditConfig",
      "description": "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."
    },
    "DeploymentOperationMetadata": {
      "description": "Ephemeral metadata depicting the state of the deployment operation.",
      "type": "object",
      "properties": {
        "resources": {
          "items": {
            "$ref": "Resource"
          },
          "description": "Details of the Resourcess in the deployment.",
          "type": "array"
        },
        "deploymentStep": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The current step of the deployment. This will mimic the DeploymentStep enum in the deployment proto."
        },
        "deployment": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the deployment associated with the application."
        },
        "deploymentBuild": {
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentLogs": {
          "description": "Output only. Location of the deployment operation logs in `gs://{bucket}/{object}` format.",
          "readOnly": true,
          "type": "string"
        },
        "previousAttempt": {
          "description": "Previous deployment attempt metadata.",
          "$ref": "DeploymentAttemptMetadata"
        }
      },
      "id": "DeploymentOperationMetadata"
    },
    "DeploymentError": {
      "type": "object",
      "properties": {
        "errorMessage": {
          "description": "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.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified error type.",
            "Permission related error.",
            "Quota related error.",
            "Resource already exists.",
            "Resource is unavailable.",
            "Billing related error.",
            "Generic error if error does not fall under any of the above.",
            "Terraform related error.",
            "Bad input error.",
            "Platform related error.",
            "API enablement error.",
            "Bad request error."
          ],
          "description": "Output only. The error type based on the deployment error code.",
          "enum": [
            "ERROR_TYPE_UNSPECIFIED",
            "PERMISSION",
            "QUOTA",
            "ALREADY_EXISTS",
            "RESOURCE_UNAVAILABLE",
            "BILLING",
            "GENERIC",
            "TERRAFORM",
            "BAD_INPUT",
            "PLATFORM",
            "API_ENABLEMENT",
            "BAD_REQUEST"
          ]
        },
        "detail": {
          "description": "Output only. Human readable string that summarizes the deployment error issue.",
          "readOnly": true,
          "type": "string"
        },
        "code": {
          "description": "Output only. The deployment error code. Based on Infrastructure Manager error codes.",
          "enum": [
            "ERROR_CODE_UNSPECIFIED",
            "REVISION_FAILED",
            "CLOUD_BUILD_PERMISSION_DENIED",
            "DELETE_BUILD_API_FAILED",
            "DELETE_BUILD_RUN_FAILED",
            "BUCKET_CREATION_PERMISSION_DENIED",
            "BUCKET_CREATION_FAILED",
            "EXTERNAL_VALUE_SOURCE_IMPORT_FAILED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "No error code was specified.",
            "The revision failed. See Revision for more details.",
            "Cloud Build failed due to a permission issue.",
            "Cloud Build job associated with a deployment deletion could not be started.",
            "Cloud Build job associated with a deployment deletion was started but failed.",
            "Cloud Storage bucket creation failed due to a permission issue.",
            "Cloud Storage bucket creation failed due to an issue unrelated to permissions.",
            "Failed to import values from an external source."
          ]
        },
        "tfErrors": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformError"
          },
          "description": "Output only. The error message associated with the deployment."
        },
        "deploymentFailureResolutionInfo": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DeploymentFailureResolutionInfo"
          },
          "description": "Output only. The call to actions associated with the deployment issue."
        }
      },
      "id": "DeploymentError",
      "description": "The error associated with the deployment."
    },
    "DeploymentUnitProgress": {
      "description": "Single deployment unit progress info",
      "type": "object",
      "properties": {
        "deployment": {
          "description": "Output only. Deployment resource of deploying unit ID",
          "readOnly": true,
          "type": "string"
        },
        "deploymentBuild": {
          "description": "Output only. Deployment build uuid",
          "readOnly": true,
          "type": "string"
        },
        "deploymentUnitStep": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Current deployment unit step"
        },
        "deploymentStep": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Current deployment step"
        },
        "unitId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Deployment unit ID"
        }
      },
      "id": "DeploymentUnitProgress"
    },
    "TestIamPermissionsRequest": {
      "description": "Request message for `TestIamPermissions` method.",
      "type": "object",
      "properties": {
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "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)."
        }
      },
      "id": "TestIamPermissionsRequest"
    },
    "RootModule": {
      "description": "Metadata for a root module.",
      "type": "object",
      "properties": {
        "inputVariables": {
          "type": "array",
          "items": {
            "$ref": "RootInputVariable"
          },
          "description": "List of input variables of this root module."
        },
        "dependencies": {
          "description": "Dependencies of this root module. The dependency graph of root modules must be acyclic.",
          "items": {
            "$ref": "RootModuleDependency"
          },
          "type": "array"
        },
        "outputVariables": {
          "type": "array",
          "description": "List of output variables of this root module.",
          "items": {
            "$ref": "RootOutputVariable"
          }
        },
        "components": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "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."
        },
        "id": {
          "type": "string",
          "description": "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."
        }
      },
      "id": "RootModule"
    },
    "UpdatedTemplateRevision": {
      "id": "UpdatedTemplateRevision",
      "type": "object",
      "properties": {
        "templateRevision": {
          "description": "Output only. The details of the updated template revision.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time when the template was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "templateDisplayName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The display name of the template. If the display name is not available, the template resource name is used."
        }
      },
      "description": "The updated template revision, which results in an outdated application."
    },
    "ComponentParameters": {
      "description": "Information about the component level parameters for an application.",
      "type": "object",
      "properties": {
        "componentParameterSchema": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentParameterSchema"
          },
          "description": "Output only. The component parameter schema, which includes possible parameter values."
        },
        "state": {
          "description": "Output only. Deployment state of the component.",
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified component deployment state.",
            "Component is in draft.",
            "New deployment is in progress.",
            "Update is in progress.",
            "Deletion is in progress.",
            "Component deployment is completed.",
            "Component deployment is deleted.",
            "Component deployment is failed."
          ]
        },
        "parameters": {
          "type": "array",
          "description": "Optional. A list of parameters associated with the component.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "effectiveApplicationInfo": {
          "readOnly": true,
          "description": "Output only. The effective application associated with the component. This is the server set application field.",
          "$ref": "ComponentApplicationInfo"
        },
        "component": {
          "description": "Required. The name of the component parameter.",
          "type": "string"
        },
        "connectionsParameters": {
          "description": "Output only. A list of connections associated with the component.",
          "items": {
            "$ref": "ConnectionParameters"
          },
          "readOnly": true,
          "type": "array"
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        }
      },
      "id": "ComponentParameters"
    },
    "ExportApplicationTemplateIaCRequest": {
      "description": "Request message for ExportApplicationTemplateIaC method.",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository. Default is Google Cloud Storage.",
          "$ref": "ArtifactLocation"
        },
        "exportIacConfig": {
          "description": "Optional. Configuration for exporting IaC.",
          "$ref": "ExportIaCConfig"
        }
      },
      "id": "ExportApplicationTemplateIaCRequest"
    },
    "ScoreCard": {
      "description": "Score card associated with the report.",
      "type": "object",
      "properties": {
        "reportScore": {
          "format": "int32",
          "type": "integer",
          "description": "Required. Calculated score of the report."
        },
        "minScoreRequired": {
          "description": "Optional. Minimum score required to pass assessment.",
          "type": "integer",
          "format": "int32"
        },
        "averageScore": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Average score for similar reports."
        },
        "maxScore": {
          "description": "Required. Maximum score of the report. For example, for a score of 75/100, report_score is 75 and max_score is 100.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "ScoreCard"
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "type": "object",
      "properties": {
        "applicationMetadata": {
          "readOnly": true,
          "description": "Output only. The application delete metadata this operation is associated with.",
          "$ref": "ApplicationOperationMetadata"
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The time the operation was created."
        },
        "requestedCancellation": {
          "readOnly": true,
          "type": "boolean",
          "description": "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`."
        },
        "target": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The server defined resource path for the target of the operation."
        },
        "verb": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Name of the verb executed by the operation."
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        },
        "endTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The time the operation finished running."
        },
        "deploymentMetadata": {
          "description": "Output only. The application deployment metadata this operation is associated with.",
          "$ref": "DeploymentOperationMetadata",
          "readOnly": true
        },
        "generateAssessmentReportMetadata": {
          "description": "Output only. The Generate Assessment Report Metadata this operation is associated with.",
          "$ref": "GenerateAssessmentReportOperationMetadata",
          "readOnly": true
        },
        "deploymentGroupMetadata": {
          "readOnly": true,
          "description": "Output only. The Provision Deployment Group Metadata this operation is associated with.",
          "$ref": "ProvisionDeploymentGroupOperationMetadata"
        },
        "previewMetadata": {
          "description": "Output only. The application preview metadata this operation is associated with.",
          "$ref": "PreviewOperationMetadata",
          "readOnly": true
        },
        "statusMessage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Human readable status of the operation, if any."
        }
      },
      "description": "Represents the metadata of the long-running operation."
    },
    "OciRepo": {
      "description": "Open Container Initiative (OCI) repo.",
      "id": "OciRepo",
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Required. Path to Open Container Initiative (OCI) repo. Example: oci://us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart"
        },
        "version": {
          "type": "string",
          "description": "Optional. The version of the helm chart."
        },
        "moduleSourceUri": {
          "type": "string",
          "description": "Optional. Field for containing the references to the source from which the OCI repo was created."
        }
      }
    },
    "CloudControl": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Required. The name of the cloud control."
        },
        "majorRevisionId": {
          "description": "Required. The major revision id of the cloud control.",
          "format": "int32",
          "type": "integer"
        },
        "description": {
          "type": "string",
          "description": "Optional. The description of the cloud control."
        },
        "enforcementMode": {
          "type": "string",
          "enumDescriptions": [
            "Enforcement type unspecified.",
            "The cloud control is enforced to prevent non-compliance.",
            "The cloud control is enforced to detect non-compliance.",
            "The cloud control is enforced to audit for non-compliance."
          ],
          "description": "Optional. The enforcement mode of the cloud control.",
          "enum": [
            "ENFORCEMENT_MODE_UNSPECIFIED",
            "PREVENTIVE",
            "DETECTIVE",
            "AUDIT"
          ]
        }
      },
      "id": "CloudControl",
      "description": "Cloud control for a framework."
    }
  },
  "id": "designcenter:v1alpha",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "fetchFrameworks": {
              "description": "Fetches all frameworks for assessment report.",
              "parameters": {
                "parent": {
                  "description": "Required. The parent resource name. Format: projects/{project}/locations/{location}",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "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.",
                  "location": "query",
                  "format": "int32",
                  "type": "integer"
                },
                "projects": {
                  "description": "Optional. Projects to fetch frameworks for. Format: projects/{project}",
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                },
                "filter": {
                  "type": "string",
                  "description": "Optional. Filter for frameworks list.",
                  "location": "query"
                },
                "pageToken": {
                  "description": "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.",
                  "location": "query",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "FetchFrameworksResponse"
              },
              "path": "v1alpha/{+parent}:fetchFrameworks",
              "httpMethod": "GET",
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}:fetchFrameworks",
              "id": "designcenter.projects.locations.fetchFrameworks",
              "parameterOrder": [
                "parent"
              ]
            },
            "list": {
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "parameters": {
                "pageSize": {
                  "location": "query",
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "type": "integer",
                  "format": "int32"
                },
                "extraLocationTypes": {
                  "location": "query",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "type": "string",
                  "repeated": true
                },
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page."
                },
                "filter": {
                  "type": "string",
                  "location": "query",
                  "description": "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)."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1alpha/projects/{projectsId}/locations",
              "path": "v1alpha/{+name}/locations",
              "httpMethod": "GET",
              "id": "designcenter.projects.locations.list",
              "parameterOrder": [
                "name"
              ]
            },
            "get": {
              "parameters": {
                "name": {
                  "description": "Resource name for the location.",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Gets information about a location.",
              "response": {
                "$ref": "Location"
              },
              "path": "v1alpha/{+name}",
              "httpMethod": "GET",
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}",
              "parameterOrder": [
                "name"
              ],
              "id": "designcenter.projects.locations.get"
            }
          },
          "resources": {
            "spaces": {
              "methods": {
                "registerDeployedResources": {
                  "request": {
                    "$ref": "RegisterDeployedResourcesRequest"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "id": "designcenter.projects.locations.spaces.registerDeployedResources",
                  "path": "v1alpha/{+parent}:registerDeployedResources",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:registerDeployedResources",
                  "parameters": {
                    "parent": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "Required. The parent space. Format: projects/{project}/locations/{location}/spaces/{space}",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Register deployed resources from terraform state file with App Hub.",
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "getIamPolicy": {
                  "parameterOrder": [
                    "resource"
                  ],
                  "id": "designcenter.projects.locations.spaces.getIamPolicy",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:getIamPolicy",
                  "path": "v1alpha/{+resource}:getIamPolicy",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "Policy"
                  },
                  "parameters": {
                    "resource": {
                      "description": "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.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true,
                      "type": "string",
                      "location": "path"
                    },
                    "options.requestedPolicyVersion": {
                      "location": "query",
                      "description": "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).",
                      "type": "integer",
                      "format": "int32"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set."
                },
                "list": {
                  "id": "designcenter.projects.locations.spaces.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "description": "Lists spaces in a given project and location.",
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "Required. The name of the parent resource, for which spaces are listed.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "pageSize": {
                      "type": "integer",
                      "format": "int32",
                      "location": "query",
                      "description": "Optional. The maximum number of pages to return from this request. If unspecified, the value automatically reflects the number of results returned."
                    },
                    "orderBy": {
                      "description": "Optional. How the results are sorted.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "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.",
                      "type": "string"
                    },
                    "filter": {
                      "location": "query",
                      "description": "Optional. A filter that chooses which spaces to return.",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "ListSpacesResponse"
                  },
                  "path": "v1alpha/{+parent}/spaces",
                  "httpMethod": "GET",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces"
                },
                "generateAssessmentReport": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "spaceName": {
                      "description": "Required. The name of the space at which Generate Assessment Report is called. Format: `projects/$project/locations/$location/spaces/$space`",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deprecated: Use GenerateTerraformPlanAssessmentReport instead. Generate a best practice report for a given Terraform plan.",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateAssessmentReport",
                  "path": "v1alpha/{+spaceName}:generateAssessmentReport",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "spaceName"
                  ],
                  "id": "designcenter.projects.locations.spaces.generateAssessmentReport",
                  "deprecated": true,
                  "request": {
                    "$ref": "GenerateAssessmentReportRequest"
                  }
                },
                "registerAppHubApplicationResources": {
                  "request": {
                    "$ref": "RegisterAppHubApplicationResourcesRequest"
                  },
                  "id": "designcenter.projects.locations.spaces.registerAppHubApplicationResources",
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha/{+parent}/spaces:registerAppHubApplicationResources",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces:registerAppHubApplicationResources",
                  "description": "Register deployed resources from terraform state file with App Hub without needing a space.",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent location. Format: projects/{project}/locations/{location}",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "get": {
                  "id": "designcenter.projects.locations.spaces.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Gets details about a space.",
                  "parameters": {
                    "name": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "Required. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Space"
                  },
                  "path": "v1alpha/{+name}",
                  "httpMethod": "GET",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}"
                },
                "setIamPolicy": {
                  "request": {
                    "$ref": "SetIamPolicyRequest"
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "id": "designcenter.projects.locations.spaces.setIamPolicy",
                  "parameters": {
                    "resource": {
                      "description": "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.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true,
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
                  "response": {
                    "$ref": "Policy"
                  },
                  "path": "v1alpha/{+resource}:setIamPolicy",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:setIamPolicy"
                },
                "testIamPermissions": {
                  "response": {
                    "$ref": "TestIamPermissionsResponse"
                  },
                  "parameters": {
                    "resource": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "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.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:testIamPermissions",
                  "path": "v1alpha/{+resource}:testIamPermissions",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "resource"
                  ],
                  "id": "designcenter.projects.locations.spaces.testIamPermissions",
                  "request": {
                    "$ref": "TestIamPermissionsRequest"
                  }
                },
                "delete": {
                  "id": "designcenter.projects.locations.spaces.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Deletes a space.",
                  "parameters": {
                    "force": {
                      "description": "Optional. If set to true, the space's children are also deleted. If false, the space is only deleted if it has no children.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "name": {
                      "description": "Required. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "path": "v1alpha/{+name}",
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}"
                },
                "generateTerraformPlanAssessmentReport": {
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "designcenter.projects.locations.spaces.generateTerraformPlanAssessmentReport",
                  "request": {
                    "$ref": "GenerateTerraformPlanAssessmentReportRequest"
                  },
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateTerraformPlanAssessmentReport",
                  "path": "v1alpha/{+name}:generateTerraformPlanAssessmentReport",
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "Required. The parent resource in which to generate the assessment report. Format: projects/$project/locations/$location/spaces/$space",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Generate a Terraform plan assessment report for a given Terraform plan."
                },
                "inferConnections": {
                  "parameters": {
                    "name": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "Required. The name of the space.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Infers and suggests connections between components within a space. The generated connection information can be used in application templates and designs.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1alpha/{+name}:inferConnections",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:inferConnections",
                  "request": {
                    "$ref": "InferConnectionsRequest"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "designcenter.projects.locations.spaces.inferConnections"
                },
                "create": {
                  "path": "v1alpha/{+parent}/spaces",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent in which to create a space.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "spaceId": {
                      "type": "string",
                      "location": "query",
                      "description": "Required. The ID of the space to create."
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Creates a space.",
                  "response": {
                    "$ref": "Space"
                  },
                  "request": {
                    "$ref": "Space"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "id": "designcenter.projects.locations.spaces.create"
                },
                "registerApphubResources": {
                  "description": "Registers a list of deployed GCP resources with App Hub.",
                  "parameters": {
                    "parent": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "Required. The parent space. Format: projects/{project}/locations/{location}/spaces/{space}",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1alpha/{+parent}:registerApphubResources",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:registerApphubResources",
                  "request": {
                    "$ref": "RegisterApphubResourcesRequest"
                  },
                  "id": "designcenter.projects.locations.spaces.registerApphubResources",
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "patch": {
                  "parameters": {
                    "name": {
                      "description": "Identifier. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "location": "query",
                      "description": "Optional. The fields to overwrite in the space update. If you don't provide a mask, all fields are overwritten.",
                      "type": "string",
                      "format": "google-fieldmask"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Updates a space.",
                  "response": {
                    "$ref": "Space"
                  },
                  "path": "v1alpha/{+name}",
                  "httpMethod": "PATCH",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "request": {
                    "$ref": "Space"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "designcenter.projects.locations.spaces.patch"
                }
              },
              "resources": {
                "applicationTemplates": {
                  "resources": {
                    "revisions": {
                      "methods": {
                        "export": {
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.export",
                          "request": {
                            "$ref": "ExportApplicationTemplateRevisionIaCRequest"
                          },
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:export",
                          "path": "v1alpha/{+name}:export",
                          "httpMethod": "POST",
                          "response": {
                            "$ref": "Operation"
                          },
                          "parameters": {
                            "name": {
                              "description": "Required. The name of the application template revision.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Exports Terraform files for an application template revision. The generated modules can have remote sources or local sources downloaded from remote. This is an ASYNCHRONOUS operation that returns a Long Running Operation."
                        },
                        "delete": {
                          "path": "v1alpha/{+name}",
                          "httpMethod": "DELETE",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "parameters": {
                            "name": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The application template revision name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes an application template revision.",
                          "response": {
                            "$ref": "Empty"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.delete"
                        },
                        "generate": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.generate",
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCRequest"
                          },
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:generate",
                          "path": "v1alpha/{+name}:generate",
                          "httpMethod": "POST",
                          "response": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCResponse"
                          },
                          "description": "Generates Terraform files for an application template revision. This is a SYNCHRONOUS operation and returns the generated IaC directly in the response. It does NOT download external module sources; it only uses remote sources.",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "required": true,
                              "type": "string",
                              "description": "Required. The name of the application template revision.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "get": {
                          "description": "Gets details about an application template revision.",
                          "parameters": {
                            "name": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The application template revision name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "ApplicationTemplateRevision"
                          },
                          "path": "v1alpha/{+name}",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.get",
                          "parameterOrder": [
                            "name"
                          ]
                        },
                        "list": {
                          "path": "v1alpha/{+parent}/revisions",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions",
                          "description": "Lists application template revisions in a given application template.",
                          "parameters": {
                            "orderBy": {
                              "location": "query",
                              "description": "Optional. How the results should be sorted.",
                              "type": "string"
                            },
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent from which to list application template revisions.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                            },
                            "pageSize": {
                              "location": "query",
                              "description": "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.",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "location": "query",
                              "description": "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.",
                              "type": "string"
                            },
                            "filter": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. A filter that chooses which application template revisions to return."
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "ListApplicationTemplateRevisionsResponse"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.list",
                          "parameterOrder": [
                            "parent"
                          ]
                        }
                      }
                    },
                    "policies": {
                      "methods": {
                        "get": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.get",
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "description": "Policy related APIs. Get a policy for an application template.",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "required": true,
                              "type": "string",
                              "description": "Required. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "path": "v1alpha/{+name}",
                          "httpMethod": "GET"
                        },
                        "list": {
                          "parameterOrder": [
                            "parent"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.list",
                          "parameters": {
                            "orderBy": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. How the results should be sorted."
                            },
                            "parent": {
                              "description": "Required. The parent application template from which policies are listed in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "required": true,
                              "type": "string",
                              "location": "path"
                            },
                            "pageSize": {
                              "type": "integer",
                              "format": "int32",
                              "location": "query",
                              "description": "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": {
                              "type": "string",
                              "location": "query",
                              "description": "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."
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which policies to return.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists policies for an application template.",
                          "response": {
                            "$ref": "ListPoliciesResponse"
                          },
                          "path": "v1alpha/{+parent}/policies",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies"
                        },
                        "create": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.create",
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "description": "Creates a policy for an application template.",
                          "parameters": {
                            "policyId": {
                              "type": "string",
                              "description": "Required. The ID of the policy to create.",
                              "location": "query"
                            },
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent resource in which to create the policy in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "path": "v1alpha/{+parent}/policies",
                          "httpMethod": "POST"
                        },
                        "delete": {
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "path": "v1alpha/{+name}",
                          "httpMethod": "DELETE",
                          "response": {
                            "$ref": "Empty"
                          },
                          "description": "Deletes a policy.",
                          "parameters": {
                            "name": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.delete",
                          "parameterOrder": [
                            "name"
                          ]
                        },
                        "patch": {
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.patch",
                          "parameterOrder": [
                            "name"
                          ],
                          "path": "v1alpha/{+name}",
                          "httpMethod": "PATCH",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "description": "Updates a policy.",
                          "parameters": {
                            "updateMask": {
                              "location": "query",
                              "description": "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.",
                              "type": "string",
                              "format": "google-fieldmask"
                            },
                            "name": {
                              "location": "path",
                              "required": true,
                              "type": "string",
                              "description": "Identifier. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          }
                        }
                      }
                    },
                    "systemRevisions": {
                      "methods": {
                        "list": {
                          "parameterOrder": [
                            "parent"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.list",
                          "response": {
                            "$ref": "ListApplicationTemplateSystemRevisionsResponse"
                          },
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent Application Template from which to list the system revisions. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "format": "int32",
                              "type": "integer",
                              "description": "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.",
                              "location": "query"
                            },
                            "pageToken": {
                              "location": "query",
                              "description": "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.",
                              "type": "string"
                            },
                            "filter": {
                              "type": "string",
                              "description": "Optional. A filter expression that filters system revisions listed in the response. See https://google.aip.dev/160 for more information on the grammar.",
                              "location": "query"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists application template system revisions in a given application template.",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions",
                          "path": "v1alpha/{+parent}/systemRevisions",
                          "httpMethod": "GET"
                        },
                        "get": {
                          "path": "v1alpha/{+name}",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions/{systemRevisionsId}",
                          "parameters": {
                            "name": {
                              "description": "Required. The name of the ApplicationTemplateSystemRevision to retrieve. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/systemRevisions/[^/]+$",
                              "required": true,
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets the given application template system revision.",
                          "response": {
                            "$ref": "ApplicationTemplateSystemRevision"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.get"
                        }
                      }
                    },
                    "components": {
                      "methods": {
                        "get": {
                          "parameters": {
                            "name": {
                              "description": "Required. The component name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets details about a Component.",
                          "response": {
                            "$ref": "Component"
                          },
                          "path": "v1alpha/{+name}",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.get"
                        },
                        "list": {
                          "response": {
                            "$ref": "ListComponentsResponse"
                          },
                          "parameters": {
                            "orderBy": {
                              "type": "string",
                              "description": "Optional. How the results should be sorted.",
                              "location": "query"
                            },
                            "parent": {
                              "description": "Required. The parent resource from which the list of components is requested.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "location": "query",
                              "description": "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.",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "location": "query",
                              "description": "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.",
                              "type": "string"
                            },
                            "filter": {
                              "type": "string",
                              "description": "Optional. A filter that chooses which components to return.",
                              "location": "query"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists components in an application template.",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "path": "v1alpha/{+parent}/components",
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "parent"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.list"
                        },
                        "create": {
                          "parameterOrder": [
                            "parent"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.create",
                          "request": {
                            "$ref": "Component"
                          },
                          "response": {
                            "$ref": "Component"
                          },
                          "parameters": {
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent resource in which to create the component.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                            },
                            "componentId": {
                              "type": "string",
                              "description": "Required. The ID of the component to create.",
                              "location": "query"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Creates a component.",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "path": "v1alpha/{+parent}/components",
                          "httpMethod": "POST"
                        },
                        "delete": {
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.delete",
                          "parameters": {
                            "name": {
                              "description": "Required. The component name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "force": {
                              "type": "boolean",
                              "description": "Optional. If set to true, the component's children are also deleted. If false, the component is only deleted if it has no children.",
                              "location": "query"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes a component.",
                          "response": {
                            "$ref": "Empty"
                          },
                          "path": "v1alpha/{+name}",
                          "httpMethod": "DELETE",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}"
                        },
                        "patch": {
                          "response": {
                            "$ref": "Component"
                          },
                          "parameters": {
                            "name": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Identifier. The component name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$"
                            },
                            "updateMask": {
                              "format": "google-fieldmask",
                              "type": "string",
                              "description": "Optional. The fields to overwrite in the component update. If you don't provide a mask, all fields are overwritten.",
                              "location": "query"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Updates a component.",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "path": "v1alpha/{+name}",
                          "httpMethod": "PATCH",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.patch",
                          "request": {
                            "$ref": "Component"
                          }
                        }
                      },
                      "resources": {
                        "connections": {
                          "methods": {
                            "delete": {
                              "path": "v1alpha/{+name}",
                              "httpMethod": "DELETE",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "description": "Deletes a connection.",
                              "parameters": {
                                "name": {
                                  "description": "Required. The connection name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "response": {
                                "$ref": "Empty"
                              },
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.delete",
                              "parameterOrder": [
                                "name"
                              ]
                            },
                            "patch": {
                              "path": "v1alpha/{+name}",
                              "httpMethod": "PATCH",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "parameters": {
                                "name": {
                                  "description": "Identifier. The connection name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "required": true,
                                  "type": "string",
                                  "location": "path"
                                },
                                "updateMask": {
                                  "location": "query",
                                  "description": "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.",
                                  "type": "string",
                                  "format": "google-fieldmask"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Updates a connection.",
                              "response": {
                                "$ref": "Connection"
                              },
                              "request": {
                                "$ref": "Connection"
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.patch"
                            },
                            "get": {
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "path": "v1alpha/{+name}",
                              "httpMethod": "GET",
                              "response": {
                                "$ref": "Connection"
                              },
                              "description": "Gets details about a connection.",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "required": true,
                                  "type": "string",
                                  "description": "Required. Name of the resource",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.get",
                              "parameterOrder": [
                                "name"
                              ]
                            },
                            "list": {
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "path": "v1alpha/{+parent}/connections",
                              "httpMethod": "GET",
                              "response": {
                                "$ref": "ListConnectionsResponse"
                              },
                              "description": "Lists connections in an application template.",
                              "parameters": {
                                "filter": {
                                  "type": "string",
                                  "location": "query",
                                  "description": "Optional. A filter that chooses which connections to return."
                                },
                                "pageToken": {
                                  "description": "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.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "orderBy": {
                                  "location": "query",
                                  "description": "Optional. How the results should be sorted.",
                                  "type": "string"
                                },
                                "parent": {
                                  "required": true,
                                  "type": "string",
                                  "location": "path",
                                  "description": "Required. The parent resource from which to request a list of connections.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$"
                                },
                                "pageSize": {
                                  "location": "query",
                                  "description": "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.",
                                  "type": "integer",
                                  "format": "int32"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.list",
                              "parameterOrder": [
                                "parent"
                              ]
                            },
                            "create": {
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "path": "v1alpha/{+parent}/connections",
                              "httpMethod": "POST",
                              "response": {
                                "$ref": "Connection"
                              },
                              "parameters": {
                                "parent": {
                                  "required": true,
                                  "type": "string",
                                  "location": "path",
                                  "description": "Required. The parent resource in which to create a connection.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$"
                                },
                                "connectionId": {
                                  "location": "query",
                                  "description": "Required. The ID of the connection to create.",
                                  "type": "string"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Creates a connection.",
                              "parameterOrder": [
                                "parent"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.create",
                              "request": {
                                "$ref": "Connection"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "methods": {
                    "import": {
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Imports to an existing application template from a given shared template.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:import",
                      "path": "v1alpha/{+name}:import",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.import",
                      "request": {
                        "$ref": "ImportApplicationTemplateRequest"
                      }
                    },
                    "commit": {
                      "request": {
                        "$ref": "CommitApplicationTemplateRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.commit",
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}:commit",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:commit",
                      "description": "Commits an application template to create a new revision.",
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ApplicationTemplateRevision"
                      }
                    },
                    "importIaC": {
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.importIaC",
                      "request": {
                        "$ref": "ImportApplicationTemplateIaCRequest"
                      },
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:importIaC",
                      "path": "v1alpha/{+name}:importIaC",
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "ImportApplicationTemplateIaCResponse"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Imports IaC for an application template."
                    },
                    "list": {
                      "path": "v1alpha/{+parent}/applicationTemplates",
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "description": "Lists application templates in a given space.",
                      "parameters": {
                        "parent": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The parent resource from which to list application templates.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                        },
                        "pageSize": {
                          "location": "query",
                          "description": "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.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "orderBy": {
                          "location": "query",
                          "description": "Optional. How the results should be sorted.",
                          "type": "string"
                        },
                        "pageToken": {
                          "location": "query",
                          "description": "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.",
                          "type": "string"
                        },
                        "filter": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. A filter that chooses which shared template revisions to return."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ListApplicationTemplatesResponse"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.list",
                      "parameterOrder": [
                        "parent"
                      ]
                    },
                    "snapshot": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.snapshot",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "SnapshotApplicationTemplateRequest"
                      },
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:snapshot",
                      "path": "v1alpha/{+name}:snapshot",
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "Operation"
                      },
                      "description": "Snapshots an application template to create a new revision asynchronously.",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "patch": {
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.patch",
                      "parameterOrder": [
                        "name"
                      ],
                      "description": "Updates an application template.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Identifier. Application template name.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        },
                        "updateMask": {
                          "location": "query",
                          "description": "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.",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "path": "v1alpha/{+name}",
                      "httpMethod": "PATCH",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}"
                    },
                    "generate": {
                      "path": "v1alpha/{+name}:generate",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generate",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Generates Terraform files for an application template. This is a SYNCHRONOUS operation and returns the generated IaC directly in the response. It does NOT download external module sources; it only uses remote sources.",
                      "response": {
                        "$ref": "GenerateApplicationTemplateIaCResponse"
                      },
                      "request": {
                        "$ref": "GenerateApplicationTemplateIaCRequest"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generate"
                    },
                    "delete": {
                      "response": {
                        "$ref": "Empty"
                      },
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The application template name.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        },
                        "force": {
                          "type": "boolean",
                          "description": "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.",
                          "location": "query"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deletes an application template.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "path": "v1alpha/{+name}",
                      "httpMethod": "DELETE",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.delete"
                    },
                    "export": {
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Exports Terraform files for an application template. The generated modules can have remote sources or local sources downloaded from remote. This is an ASYNCHRONOUS operation that returns a Long Running Operation.",
                      "response": {
                        "$ref": "Operation"
                      },
                      "path": "v1alpha/{+name}:export",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:export",
                      "request": {
                        "$ref": "ExportApplicationTemplateIaCRequest"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.export"
                    },
                    "create": {
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameters": {
                        "parent": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The parent resource in which to create the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                        },
                        "applicationTemplateId": {
                          "location": "query",
                          "description": "Required. The ID of the application template to create.",
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Creates an application template.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "path": "v1alpha/{+parent}/applicationTemplates",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "parent"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.create",
                      "request": {
                        "$ref": "ApplicationTemplate"
                      }
                    },
                    "generateAssessmentReport": {
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generateAssessmentReport",
                      "request": {
                        "$ref": "GenerateApplicationTemplateAssessmentReportRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The application template name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Generate Assessment Reports of an application template.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generateAssessmentReport",
                      "path": "v1alpha/{+name}:generateAssessmentReport",
                      "httpMethod": "POST"
                    },
                    "get": {
                      "path": "v1alpha/{+name}",
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The application template name.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details about an application template.",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.get"
                    }
                  }
                },
                "catalogs": {
                  "methods": {
                    "patch": {
                      "path": "v1alpha/{+name}",
                      "httpMethod": "PATCH",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "description": "Identifier. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                        },
                        "updateMask": {
                          "type": "string",
                          "format": "google-fieldmask",
                          "location": "query",
                          "description": "Optional. The fields to overwrite in the catalog update. If you don't provide a mask, all fields are overwritten."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Updates a catalog.",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "request": {
                        "$ref": "Catalog"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.catalogs.patch"
                    },
                    "delete": {
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.catalogs.delete",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        },
                        "force": {
                          "type": "boolean",
                          "location": "query",
                          "description": "Optional. If set to true, the catalog's children are also deleted. If false, the catalog is only deleted if it has no children."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deletes a catalog.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "path": "v1alpha/{+name}",
                      "httpMethod": "DELETE"
                    },
                    "create": {
                      "parameterOrder": [
                        "parent"
                      ],
                      "id": "designcenter.projects.locations.spaces.catalogs.create",
                      "request": {
                        "$ref": "Catalog"
                      },
                      "response": {
                        "$ref": "Catalog"
                      },
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent space in which a catalog is created in the following format: `projects/$project/locations/$location/spaces/$space`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "catalogId": {
                          "description": "Required. The ID of the catalog to create.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Creates a catalog.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "path": "v1alpha/{+parent}/catalogs",
                      "httpMethod": "POST"
                    },
                    "list": {
                      "id": "designcenter.projects.locations.spaces.catalogs.list",
                      "parameterOrder": [
                        "parent"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "path": "v1alpha/{+parent}/catalogs",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListCatalogsResponse"
                      },
                      "description": "Lists catalogs in a given space.",
                      "parameters": {
                        "filter": {
                          "type": "string",
                          "description": "Optional. A filter that chooses which catalogs to return.",
                          "location": "query"
                        },
                        "pageToken": {
                          "type": "string",
                          "location": "query",
                          "description": "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."
                        },
                        "orderBy": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. How the results should be sorted."
                        },
                        "parent": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The parent space from which catalogs are listed. Format: `projects/$project/locations/$location/spaces/$space`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                        },
                        "pageSize": {
                          "type": "integer",
                          "format": "int32",
                          "location": "query",
                          "description": "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."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.catalogs.get",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "path": "v1alpha/{+name}",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details about a catalog."
                    }
                  },
                  "resources": {
                    "templates": {
                      "resources": {
                        "revisions": {
                          "methods": {
                            "create": {
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.create",
                              "parameterOrder": [
                                "parent"
                              ],
                              "request": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "path": "v1alpha/{+parent}/revisions",
                              "httpMethod": "POST",
                              "response": {
                                "$ref": "Operation"
                              },
                              "description": "Creates a template revision.",
                              "parameters": {
                                "catalogTemplateRevisionId": {
                                  "type": "string",
                                  "description": "Required. The ID of the template revision to create.",
                                  "location": "query"
                                },
                                "parent": {
                                  "location": "path",
                                  "required": true,
                                  "type": "string",
                                  "description": "Required. The parent in which the catalog template revisions request is created in following format: `projects/$project/locations/$location/spaces/$space/templates/$template`",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ]
                            },
                            "list": {
                              "description": "Lists template revisions.",
                              "parameters": {
                                "orderBy": {
                                  "type": "string",
                                  "location": "query",
                                  "description": "Optional. How the results should be sorted."
                                },
                                "parent": {
                                  "location": "path",
                                  "required": true,
                                  "type": "string",
                                  "description": "Required. The parent resource from which a list of catalog template revisions is requested.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$"
                                },
                                "pageSize": {
                                  "format": "int32",
                                  "type": "integer",
                                  "description": "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.",
                                  "location": "query"
                                },
                                "pageToken": {
                                  "type": "string",
                                  "description": "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.",
                                  "location": "query"
                                },
                                "filter": {
                                  "type": "string",
                                  "description": "Optional. A filter that chooses which catalog template revisions to return.",
                                  "location": "query"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "response": {
                                "$ref": "ListCatalogTemplateRevisionsResponse"
                              },
                              "path": "v1alpha/{+parent}/revisions",
                              "httpMethod": "GET",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.list",
                              "parameterOrder": [
                                "parent"
                              ]
                            },
                            "get": {
                              "parameterOrder": [
                                "name"
                              ],
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.get",
                              "parameters": {
                                "name": {
                                  "required": true,
                                  "type": "string",
                                  "location": "path",
                                  "description": "Required. The catalog template revisions name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Gets details about a template revision.",
                              "response": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "path": "v1alpha/{+name}",
                              "httpMethod": "GET",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}"
                            },
                            "fetchAssessmentReport": {
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "required": true,
                                  "type": "string",
                                  "description": "Required. The catalog template revision name in the following format: `projects/{project}/locations/{location}/spaces/{space}/catalogs/{catalog}/templates/{template}/revisions/{revision}`",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Fetches the assessment report of a catalog template revision if present.",
                              "response": {
                                "$ref": "FetchCatalogTemplateRevisionAssessmentReportResponse"
                              },
                              "path": "v1alpha/{+name}:fetchAssessmentReport",
                              "httpMethod": "GET",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}:fetchAssessmentReport",
                              "parameterOrder": [
                                "name"
                              ],
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.fetchAssessmentReport"
                            },
                            "delete": {
                              "parameterOrder": [
                                "name"
                              ],
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.delete",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "path": "v1alpha/{+name}",
                              "httpMethod": "DELETE",
                              "response": {
                                "$ref": "Operation"
                              },
                              "parameters": {
                                "name": {
                                  "description": "Required. The template revision name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "required": true,
                                  "type": "string",
                                  "location": "path"
                                }
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Deletes a template revision."
                            }
                          }
                        }
                      },
                      "methods": {
                        "get": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.get",
                          "parameterOrder": [
                            "name"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "path": "v1alpha/{+name}",
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "description": "Gets a catalog template.",
                          "parameters": {
                            "name": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The catalog template name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "list": {
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "path": "v1alpha/{+parent}/templates",
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "ListCatalogTemplatesResponse"
                          },
                          "description": "Lists catalog templates.",
                          "parameters": {
                            "parent": {
                              "location": "path",
                              "required": true,
                              "type": "string",
                              "description": "Required. The parent from which the catalog templates are listed in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            },
                            "pageSize": {
                              "location": "query",
                              "description": "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.",
                              "type": "integer",
                              "format": "int32"
                            },
                            "orderBy": {
                              "location": "query",
                              "description": "Optional. How the results should be sorted.",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses the catalog templates to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "pageToken": {
                              "description": "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.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.list",
                          "parameterOrder": [
                            "parent"
                          ]
                        },
                        "create": {
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.create",
                          "path": "v1alpha/{+parent}/templates",
                          "httpMethod": "POST",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "parameters": {
                            "catalogTemplateId": {
                              "description": "Required. The ID of the catalog template to create. The ID is appended to the catalog template's name.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent resource in which the catalog template is created.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Adds a template to a catalog.",
                          "response": {
                            "$ref": "CatalogTemplate"
                          }
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.delete",
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Operation"
                          },
                          "description": "Deletes a catalog template.",
                          "parameters": {
                            "name": {
                              "description": "Required. The catalog template name. Format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "required": true,
                              "type": "string",
                              "location": "path"
                            },
                            "force": {
                              "location": "query",
                              "description": "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.",
                              "type": "boolean"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "path": "v1alpha/{+name}",
                          "httpMethod": "DELETE"
                        },
                        "patch": {
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.patch",
                          "parameterOrder": [
                            "name"
                          ],
                          "description": "Updates a catalog template resource.",
                          "parameters": {
                            "name": {
                              "description": "Identifier. The catalog template name in following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "required": true,
                              "type": "string",
                              "location": "path"
                            },
                            "updateMask": {
                              "type": "string",
                              "format": "google-fieldmask",
                              "location": "query",
                              "description": "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."
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "path": "v1alpha/{+name}",
                          "httpMethod": "PATCH",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}"
                        }
                      }
                    },
                    "shares": {
                      "methods": {
                        "get": {
                          "parameters": {
                            "name": {
                              "description": "Required. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "required": true,
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Get catalog share object for the space.",
                          "response": {
                            "$ref": "Share"
                          },
                          "path": "v1alpha/{+name}",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.get"
                        },
                        "sync": {
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.sync",
                          "request": {
                            "$ref": "SyncShareRequest"
                          },
                          "response": {
                            "$ref": "Operation"
                          },
                          "parameters": {
                            "name": {
                              "location": "path",
                              "required": true,
                              "type": "string",
                              "description": "Required. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Synchronizes a share and updates the destination workspace to reflect. reflect the most recent changes to the catalog.",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}:sync",
                          "path": "v1alpha/{+name}:sync",
                          "httpMethod": "POST"
                        },
                        "list": {
                          "path": "v1alpha/{+parent}/shares",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "parameters": {
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent resource from which a list of shares is requested.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            },
                            "pageSize": {
                              "format": "int32",
                              "type": "integer",
                              "description": "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.",
                              "location": "query"
                            },
                            "pageToken": {
                              "type": "string",
                              "location": "query",
                              "description": "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."
                            },
                            "orderBy": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. How the results should be sorted."
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists catalog share objects for the space.",
                          "response": {
                            "$ref": "ListSharesResponse"
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.list"
                        },
                        "create": {
                          "response": {
                            "$ref": "Operation"
                          },
                          "description": "Shares a catalog from one space to another space.",
                          "parameters": {
                            "shareId": {
                              "description": "Required. The ID of the share to create.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "location": "path",
                              "required": true,
                              "type": "string",
                              "description": "Required. The parent resource in which shares are created.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "path": "v1alpha/{+parent}/shares",
                          "httpMethod": "POST",
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.create",
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "Share"
                          }
                        },
                        "delete": {
                          "response": {
                            "$ref": "Operation"
                          },
                          "description": "Deletes a catalog share.",
                          "parameters": {
                            "name": {
                              "description": "Required. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "path": "v1alpha/{+name}",
                          "httpMethod": "DELETE",
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.delete",
                          "parameterOrder": [
                            "name"
                          ]
                        }
                      }
                    }
                  }
                },
                "applications": {
                  "methods": {
                    "importIaC": {
                      "path": "v1alpha/{+name}:importIaC",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:importIaC",
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "description": "Required. The name of the application.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Imports IaC for an application resource.",
                      "response": {
                        "$ref": "ImportApplicationIaCResponse"
                      },
                      "request": {
                        "$ref": "ImportApplicationIaCRequest"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.importIaC"
                    },
                    "register": {
                      "request": {
                        "$ref": "RegisterDeployedApplicationRequest"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.register",
                      "path": "v1alpha/{+name}:register",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:register",
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "description": "Required. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Register deployed application from terraform state file with App Hub.",
                      "response": {
                        "$ref": "Operation"
                      }
                    },
                    "create": {
                      "request": {
                        "$ref": "Application"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.create",
                      "parameterOrder": [
                        "parent"
                      ],
                      "path": "v1alpha/{+parent}/applications",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "description": "Creates an application.",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent resource in which to create the application. Format: `projects/$project/locations/$location/spaces/$space`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        },
                        "applicationId": {
                          "type": "string",
                          "description": "Required. The ID of the application to create.",
                          "location": "query"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Application"
                      }
                    },
                    "patch": {
                      "parameters": {
                        "name": {
                          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "updateMask": {
                          "type": "string",
                          "format": "google-fieldmask",
                          "location": "query",
                          "description": "Optional. The fields to overwrite in the application update. If you don't provide a mask, all fields are overwritten."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Updates an application.",
                      "response": {
                        "$ref": "Application"
                      },
                      "path": "v1alpha/{+name}",
                      "httpMethod": "PATCH",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "request": {
                        "$ref": "Application"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.patch"
                    },
                    "fetchAssessmentReport": {
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.fetchAssessmentReport",
                      "response": {
                        "$ref": "FetchApplicationAssessmentReportResponse"
                      },
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Fetches the assessment report of a deployed application if present.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:fetchAssessmentReport",
                      "path": "v1alpha/{+name}:fetchAssessmentReport",
                      "httpMethod": "GET"
                    },
                    "list": {
                      "path": "v1alpha/{+parent}/applications",
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "description": "Lists applications in a given space.",
                      "parameters": {
                        "pageToken": {
                          "type": "string",
                          "description": "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.",
                          "location": "query"
                        },
                        "filter": {
                          "location": "query",
                          "description": "Optional. A filter that chooses which applications to return.",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "location": "query",
                          "type": "string"
                        },
                        "parent": {
                          "description": "Required. The parent resource from which to request a list of applications.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        },
                        "pageSize": {
                          "type": "integer",
                          "format": "int32",
                          "location": "query",
                          "description": "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."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ListApplicationsResponse"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.list",
                      "parameterOrder": [
                        "parent"
                      ]
                    },
                    "preview": {
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:preview",
                      "path": "v1alpha/{+name}:preview",
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "Operation"
                      },
                      "description": "Previews deployment of an application.",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.preview",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "PreviewApplicationRequest"
                      }
                    },
                    "deploy": {
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:deploy",
                      "path": "v1alpha/{+name}:deploy",
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deploys an application.",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.deploy",
                      "request": {
                        "$ref": "DeployApplicationRequest"
                      }
                    },
                    "get": {
                      "id": "designcenter.projects.locations.spaces.applications.get",
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}",
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "description": "Gets details about an application.",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Application"
                      }
                    },
                    "recommendIAMRoles": {
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application resource for which to recommend IAM roles. Format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets recommended IAM roles for an application. Evaluates the infrastructure resources defined by an application (including its template configuration and parameters) to determine the set of IAM roles and Google Cloud APIs required for deployment across target projects. The operation is asynchronous and returns a `google.longrunning.Operation`. Upon completion, the operation result contains a `RecommendIAMRolesResponse` with project-level IAM role and API recommendations.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:recommendIAMRoles",
                      "path": "v1alpha/{+name}:recommendIAMRoles",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.recommendIAMRoles",
                      "request": {
                        "$ref": "RecommendIAMRolesRequest"
                      }
                    },
                    "generateAssessmentReport": {
                      "id": "designcenter.projects.locations.spaces.applications.generateAssessmentReport",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GenerateApplicationAssessmentReportRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "description": "Generate Assessment Reports of an application.",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generateAssessmentReport",
                      "path": "v1alpha/{+name}:generateAssessmentReport",
                      "httpMethod": "POST"
                    },
                    "generate": {
                      "description": "Generates Terraform files for an application.",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "GenerateApplicationIaCResponse"
                      },
                      "path": "v1alpha/{+name}:generate",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generate",
                      "request": {
                        "$ref": "GenerateApplicationIaCRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.generate",
                      "parameterOrder": [
                        "name"
                      ]
                    },
                    "delete": {
                      "path": "v1alpha/{+name}",
                      "httpMethod": "DELETE",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "description": "Deletes an application.",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "required": true,
                          "type": "string",
                          "location": "path"
                        },
                        "force": {
                          "type": "boolean",
                          "location": "query",
                          "description": "Optional. If set to true, the application's children are also deleted. If false, the application is only deleted if it has no children."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.delete",
                      "parameterOrder": [
                        "name"
                      ]
                    }
                  }
                },
                "sharedTemplates": {
                  "resources": {
                    "revisions": {
                      "methods": {
                        "get": {
                          "parameters": {
                            "name": {
                              "description": "Required. The shared template revision name, in the following format: `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate/revisions/$revision`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets details about a shared template revision.",
                          "response": {
                            "$ref": "SharedTemplateRevision"
                          },
                          "path": "v1alpha/{+name}",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions/{revisionsId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.get"
                        },
                        "list": {
                          "parameterOrder": [
                            "parent"
                          ],
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.list",
                          "path": "v1alpha/{+parent}/revisions",
                          "httpMethod": "GET",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions",
                          "parameters": {
                            "pageToken": {
                              "description": "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.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. A filter that chooses which shared template revisions to return."
                            },
                            "orderBy": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. How the results should be sorted."
                            },
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent resource from which to list shared template revisions, in the following format: `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$"
                            },
                            "pageSize": {
                              "location": "query",
                              "description": "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.",
                              "type": "integer",
                              "format": "int32"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists shared template revisions in a given space.",
                          "response": {
                            "$ref": "ListSharedTemplateRevisionsResponse"
                          }
                        },
                        "fetchAssessmentReport": {
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions/{revisionsId}:fetchAssessmentReport",
                          "path": "v1alpha/{+name}:fetchAssessmentReport",
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "FetchSharedTemplateRevisionAssessmentReportResponse"
                          },
                          "parameters": {
                            "name": {
                              "description": "Required. The shared template revision name in the following format: `projects/{project}/locations/{location}/spaces/{space}/sharedTemplates/{shared_template}/revisions/{revision}`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+/revisions/[^/]+$",
                              "required": true,
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Fetches the assessment report of a shared template revision if present.",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.fetchAssessmentReport"
                        }
                      }
                    }
                  },
                  "methods": {
                    "list": {
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.list",
                      "parameterOrder": [
                        "parent"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates",
                      "path": "v1alpha/{+parent}/sharedTemplates",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListSharedTemplatesResponse"
                      },
                      "description": "Lists shared templates in a given space.",
                      "parameters": {
                        "pageToken": {
                          "type": "string",
                          "location": "query",
                          "description": "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."
                        },
                        "filter": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. A filter that chooses which shared templates to return."
                        },
                        "parent": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "Required. The parent space for which shared templates are listed in the following format: `projects/$project/locations/$location/spaces/$space`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                        },
                        "pageSize": {
                          "description": "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.",
                          "location": "query",
                          "format": "int32",
                          "type": "integer"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.get",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}",
                      "path": "v1alpha/{+name}",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "SharedTemplate"
                      },
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "description": "Required. The shared template name. Format: `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details about a shared template."
                    }
                  }
                }
              }
            },
            "operations": {
              "methods": {
                "list": {
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "parameters": {
                    "pageSize": {
                      "location": "query",
                      "description": "The standard list page size.",
                      "type": "integer",
                      "format": "int32"
                    },
                    "name": {
                      "description": "The name of the operation's parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string",
                      "location": "path"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "returnPartialSuccess": {
                      "type": "boolean",
                      "description": "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.",
                      "location": "query"
                    },
                    "filter": {
                      "location": "query",
                      "description": "The standard list filter.",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "path": "v1alpha/{+name}/operations",
                  "httpMethod": "GET",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations",
                  "id": "designcenter.projects.locations.operations.list",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "get": {
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "designcenter.projects.locations.operations.get",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "path": "v1alpha/{+name}",
                  "httpMethod": "GET"
                },
                "cancel": {
                  "path": "v1alpha/{+name}:cancel",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
                  "response": {
                    "$ref": "Empty"
                  },
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "designcenter.projects.locations.operations.cancel"
                },
                "delete": {
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "designcenter.projects.locations.operations.delete",
                  "response": {
                    "$ref": "Empty"
                  },
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be deleted.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "path": "v1alpha/{+name}",
                  "httpMethod": "DELETE"
                }
              }
            }
          }
        }
      }
    }
  },
  "version_module": true,
  "version": "v1alpha",
  "parameters": {
    "uploadType": {
      "type": "string",
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "upload_protocol": {
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "key": {
      "location": "query",
      "description": "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.",
      "type": "string"
    },
    "$.xgafv": {
      "location": "query",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ]
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "default": "json",
      "location": "query",
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ]
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "location": "query",
      "description": "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.",
      "type": "string"
    },
    "oauth_token": {
      "location": "query",
      "description": "OAuth 2.0 token for the current user.",
      "type": "string"
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    }
  },
  "batchPath": "batch"
}
