{
  "kind": "discovery#restDescription",
  "basePath": "",
  "parameters": {
    "key": {
      "location": "query",
      "type": "string",
      "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."
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "enum": [
        "1",
        "2"
      ]
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "description": "Data format for response.",
      "default": "json"
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "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."
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "fields": {
      "location": "query",
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "access_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth access token."
    },
    "prettyPrint": {
      "location": "query",
      "default": "true",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks."
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "callback": {
      "location": "query",
      "type": "string",
      "description": "JSONP"
    }
  },
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "fullyEncodeReservedExpansion": true,
  "schemas": {
    "OciRepo": {
      "properties": {
        "uri": {
          "description": "Required. Path to Open Container Initiative (OCI) repo. Example: oci://us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart",
          "type": "string"
        },
        "version": {
          "description": "Optional. The version of the helm chart.",
          "type": "string"
        }
      },
      "id": "OciRepo",
      "description": "Open Container Initiative (OCI) repo.",
      "type": "object"
    },
    "HelmApplicationOutputParameters": {
      "id": "HelmApplicationOutputParameters",
      "description": "The helm application output parameters of the deployment.",
      "type": "object",
      "properties": {
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Output only. The output parameters of the helm application.",
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "IacFormatInfo": {
      "id": "IacFormatInfo",
      "description": "IacFormatInfo defines the actuation tool used to provision the Template.",
      "type": "object",
      "properties": {
        "flavor": {
          "description": "Required. Flavor is the type of the actuation tool.",
          "type": "string"
        },
        "version": {
          "description": "Required. Required version for the actuation tool. required_version = \"\u003e= 0.13\"",
          "type": "string"
        }
      }
    },
    "DomainAssessmentReport": {
      "properties": {
        "assessedFrameworks": {
          "items": {
            "$ref": "AssessedFramework"
          },
          "description": "Required. List of frameworks assessed and their findings.",
          "type": "array"
        },
        "domainRedirectInfo": {
          "description": "Optional. Information on how to redirect to domain.",
          "$ref": "DomainRedirectInfo"
        },
        "reportScore": {
          "description": "Output only. Score card associated with the report.",
          "readOnly": true,
          "$ref": "ScoreCard"
        },
        "adcMetadata": {
          "description": "Output only. ADC specific information and metadata.",
          "readOnly": true,
          "$ref": "AdcMetadata"
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. The time at which the report was last updated.",
          "readOnly": true,
          "type": "string"
        },
        "reportName": {
          "description": "Optional. The report name as per ADC.",
          "type": "string"
        },
        "additionalInfo": {
          "description": "Optional. Additional information about the report.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time at which the report was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "domainId": {
          "description": "Output only. The ID of the domain.",
          "readOnly": true,
          "type": "string"
        },
        "skippedAssetTypes": {
          "description": "Optional. List of asset types skipped during assessment.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "enum": [
            "STATUS_UNSPECIFIED",
            "PENDING",
            "COMPLETED",
            "FAILED"
          ],
          "description": "Optional. Status of assessment report.",
          "type": "string",
          "enumDescriptions": [
            "No status specified.",
            "Pending domain assessment.",
            "Complete domain assessment.",
            "Failed domain assessment."
          ]
        }
      },
      "id": "DomainAssessmentReport",
      "description": "The assessment report for each domain.",
      "type": "object"
    },
    "DeveloperConnectConfig": {
      "properties": {
        "gitRepositoryLink": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.",
          "type": "string"
        }
      },
      "id": "DeveloperConnectConfig",
      "description": "This config defines the location of a source through Developer Connect.",
      "type": "object"
    },
    "ImportApplicationTemplateIaCResponse": {
      "properties": {
        "applicationTemplate": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "ApplicationTemplate"
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "description": "The state of the import.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ]
        },
        "errors": {
          "description": "Errors encountered during import.",
          "type": "array",
          "items": {
            "$ref": "ImportIaCError"
          }
        }
      },
      "id": "ImportApplicationTemplateIaCResponse",
      "description": "Response message for ImportApplicationTemplateIaC method.",
      "type": "object"
    },
    "ValueLabel": {
      "id": "ValueLabel",
      "description": "Value label for a UI input.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Output only. Value of the enum.",
          "readOnly": true,
          "type": "string"
        },
        "label": {
          "description": "Output only. Label of the enum.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "TerraformUiOutput": {
      "properties": {
        "outputMessage": {
          "description": "Output only. Message to be displayed in the UI.",
          "readOnly": true,
          "type": "string"
        },
        "terraformUiOutputs": {
          "description": "Output only. Visibility of the output.",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "TerraformUiOutputDisplay"
          }
        }
      },
      "id": "TerraformUiOutput",
      "description": "Terraform blueprint UI output.",
      "type": "object"
    },
    "PreviewOperationMetadata": {
      "properties": {
        "previewLogs": {
          "description": "Output only. Location of the preview operation logs in `gs://{bucket}/{object}` format.",
          "readOnly": true,
          "type": "string"
        },
        "previewBuild": {
          "description": "Output only. Cloud Build instance UUID associated with the preview operation.",
          "readOnly": true,
          "type": "string"
        },
        "resources": {
          "description": "Details of the Resourcess in the deployment.",
          "type": "array",
          "items": {
            "$ref": "Resource"
          }
        },
        "previewStep": {
          "description": "Output only. The current step of the preview. The possible steps a preview may be running as returned by the Infrastructure. Manager.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "PreviewOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the preview operation.",
      "type": "object"
    },
    "TerraformInput": {
      "id": "TerraformInput",
      "description": "Terraform inputs.",
      "type": "object",
      "properties": {
        "connections": {
          "items": {
            "$ref": "TerraformInputConnections"
          },
          "description": "Output only. Terraform input connections.",
          "readOnly": true,
          "type": "array"
        },
        "defaultValue": {
          "description": "Output only. The default value of the Terraform input variable.",
          "readOnly": true,
          "type": "any"
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        },
        "terraformInputVariable": {
          "description": "Output only. Input variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Output only. Terraform variable description.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. The Terraform input data type.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GenerateApplicationTemplateRevisionIaCRequest": {
      "id": "GenerateApplicationTemplateRevisionIaCRequest",
      "description": "Request message for GenerateApplicationTemplateRevisionIaC method.",
      "type": "object",
      "properties": {
        "iacFormat": {
          "description": "Optional. The IaC format to generate.",
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "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"
        }
      }
    },
    "Attributes": {
      "id": "Attributes",
      "description": "Consumer provided attributes.",
      "type": "object",
      "properties": {
        "criticality": {
          "description": "Optional. User-defined criticality information.",
          "$ref": "Criticality"
        },
        "environment": {
          "description": "Optional. User-defined environment information.",
          "$ref": "Environment"
        },
        "developerOwners": {
          "description": "Optional. Developer team that owns development and coding.",
          "type": "array",
          "items": {
            "$ref": "ContactInfo"
          }
        },
        "businessOwners": {
          "description": "Optional. Business team that ensures user needs are met and value is delivered",
          "type": "array",
          "items": {
            "$ref": "ContactInfo"
          }
        },
        "operatorOwners": {
          "items": {
            "$ref": "ContactInfo"
          },
          "description": "Optional. Operator team that ensures runtime and operations.",
          "type": "array"
        }
      }
    },
    "RegisterAppHubApplicationResourcesRequest": {
      "id": "RegisterAppHubApplicationResourcesRequest",
      "description": "Request message for RegisterAppHubApplicationResources method.",
      "type": "object",
      "properties": {
        "apphubApplication": {
          "description": "Required. The name of the AppHub Application. Format: projects/{project}/locations/{location}/applications/{application}",
          "type": "string"
        },
        "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. ADC imposes a limit on the maximum size of the state file accessed via this URI.",
          "type": "string"
        },
        "tfstateContent": {
          "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.",
          "type": "string"
        }
      }
    },
    "Policy": {
      "id": "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/).",
      "type": "object",
      "properties": {
        "version": {
          "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).",
          "type": "integer"
        },
        "auditConfigs": {
          "description": "Specifies cloud audit logging configuration for this policy.",
          "type": "array",
          "items": {
            "$ref": "AuditConfig"
          }
        },
        "etag": {
          "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.",
          "type": "string",
          "format": "byte"
        },
        "bindings": {
          "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`.",
          "type": "array",
          "items": {
            "$ref": "Binding"
          }
        }
      }
    },
    "Component": {
      "id": "Component",
      "description": "Component resource.",
      "type": "object",
      "properties": {
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        },
        "name": {
          "description": "Identifier. The component name.",
          "type": "string"
        },
        "connectionsParameters": {
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ConnectionParameters"
          }
        },
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The component parameters.",
          "type": "array"
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Output only. IAM roles required by the service account to deploy the component.",
          "readOnly": true,
          "type": "array"
        },
        "componentParameterSchema": {
          "description": "Output only. The component parameter schema, which includes possible parameter values. values.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentParameterSchema"
          }
        },
        "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"
        },
        "updateTime": {
          "description": "Output only. The component update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "sharedTemplateRevisionUri": {
          "description": "Required. Immutable. The shared template used to generate the component.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. ",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "TestIamPermissionsRequest": {
      "properties": {
        "permissions": {
          "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).",
          "type": "array"
        }
      },
      "id": "TestIamPermissionsRequest",
      "description": "Request message for `TestIamPermissions` method.",
      "type": "object"
    },
    "CatalogTemplateRevision": {
      "properties": {
        "description": {
          "description": "Optional. The catalog template revision description.",
          "type": "string"
        },
        "applicationTemplateRevision": {
          "description": "Output only. The application template revision.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "name": {
          "description": "Identifier. The catalog template revision name. projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template/revisions/$revision",
          "type": "string"
        },
        "state": {
          "description": "Output only. The template state (validating/ready/invalid).",
          "readOnly": true,
          "type": "string",
          "enum": [
            "STATE_UNSPECIFIED",
            "VALIDATING",
            "ACTIVE",
            "INVALID"
          ],
          "enumDescriptions": [
            "Default.",
            "The template is being validated.",
            "The template is ready to be used.",
            "The template is invalid."
          ]
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "readOnly": true,
          "$ref": "HelmChartMetadata"
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "type": {
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "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.",
          "type": "string"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "uuid": {
          "description": "Output only. UUID of the template revision.",
          "readOnly": true,
          "type": "string"
        },
        "logicalProducts": {
          "description": "Output only. The Product Main logical product type information.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "LogicalProduct"
          }
        },
        "metadataInput": {
          "description": "Optional. Metadata input.",
          "$ref": "MetadataInput"
        },
        "inferredMetadata": {
          "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.",
          "readOnly": true,
          "$ref": "InferredMetadata"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "resourceTypes": {
          "description": "Output only. The resource types present in the template revision.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ResourceType"
          }
        },
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "templateMetadata": {
          "description": "Output only. Template metadata related to Terraform input and output.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "gcsSourceUri": {
          "description": "Optional. The Cloud Storage URI, which must be in the format gs://[bucket] or gs://[bucket]/[object].",
          "type": "string"
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "templateCategory": {
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "ADC component template.",
            "ADC application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "ADC application instance."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "description": "Output only. The category of the ADC template.",
          "readOnly": true,
          "type": "string"
        },
        "annotations": {
          "description": "Optional. The annotations of the template revision. Key is the annotation name. Value is the annotation value.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "id": "CatalogTemplateRevision",
      "description": "Template revisions inside a catalog.",
      "type": "object"
    },
    "FindingADCMetadata": {
      "id": "FindingADCMetadata",
      "description": "Metadata related to the ADC with the finding.",
      "type": "object",
      "properties": {
        "componentName": {
          "description": "Output only. ADC component the finding belongs to.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "LogicalProduct": {
      "properties": {
        "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"
        },
        "shortDescription": {
          "description": "Output only. A short description of the logical product.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "LogicalProduct",
      "description": "Represents a Product Main logical product.",
      "type": "object"
    },
    "ListSpacesResponse": {
      "properties": {
        "spaces": {
          "description": "A list of spaces.",
          "type": "array",
          "items": {
            "$ref": "Space"
          }
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Locations that could not be reached.",
          "type": "array"
        },
        "nextPageToken": {
          "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.",
          "type": "string"
        }
      },
      "id": "ListSpacesResponse",
      "description": "Results returned from projects.locations.spaces.list.",
      "type": "object"
    },
    "ListApplicationTemplatesResponse": {
      "id": "ListApplicationTemplatesResponse",
      "description": "Message for response to listing application templates.",
      "type": "object",
      "properties": {
        "applicationTemplates": {
          "description": "The list of application templates.",
          "type": "array",
          "items": {
            "$ref": "ApplicationTemplate"
          }
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "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"
        }
      }
    },
    "SerializedComponent": {
      "id": "SerializedComponent",
      "description": "Serialized component.",
      "type": "object",
      "properties": {
        "sharedTemplateRevisionUri": {
          "description": "Optional. The shared template used to generate the component.",
          "type": "string"
        },
        "uri": {
          "description": "Optional. The component URI.",
          "type": "string"
        },
        "componentParameterSchema": {
          "items": {
            "$ref": "ComponentParameterSchema"
          },
          "description": "Output only. The component parameter schema, which includes possible parameter values.",
          "readOnly": true,
          "type": "array"
        },
        "connections": {
          "items": {
            "$ref": "SerializedConnection"
          },
          "description": "Optional. The component connections.",
          "type": "array"
        },
        "apis": {
          "description": "Optional. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Optional. IAM roles required by the service account to deploy the component.",
          "type": "array"
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        },
        "connectionsParameters": {
          "items": {
            "$ref": "ConnectionParameters"
          },
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "type": "array"
        },
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The component parameters.",
          "type": "array"
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        }
      }
    },
    "ExportIaCConfig": {
      "id": "ExportIaCConfig",
      "description": "Configuration for exporting a resource as IAC.",
      "type": "object",
      "properties": {
        "tfConfig": {
          "description": "Optional. Configuration on how to handle terraform IaC export.",
          "$ref": "TerraformConfig"
        },
        "iacFormat": {
          "description": "Optional. IaC format of the export. Default is [IACFormat.TERRAFORM].",
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        }
      }
    },
    "Space": {
      "properties": {
        "displayName": {
          "description": "Optional. Display name for the space.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The space name.",
          "type": "string"
        },
        "enableGcpSharedTemplates": {
          "description": "Optional. Flag to enable Google opinionated shared templates.",
          "type": "boolean"
        },
        "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.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "gcsBucket": {
          "description": "Optional. An existing Google Cloud Storage bucket that you want to use instead of creating a new bucket during ADC 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}.",
          "type": "string"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. Space creation timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Optional. Description for the space.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. Space update timestamp",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      },
      "id": "Space",
      "description": "Space is a top level resource for managing teams building applications through Application Design Center.",
      "type": "object"
    },
    "CompositeApplicationParameters": {
      "properties": {
        "serviceAccountMap": {
          "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",
          "additionalProperties": {
            "type": "string"
          }
        },
        "projectParametersMap": {
          "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}",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "ProjectParametersList"
          }
        }
      },
      "id": "CompositeApplicationParameters",
      "description": "Holds parameters that are specific to composite applications.",
      "type": "object"
    },
    "TemplateVariable": {
      "id": "TemplateVariable",
      "description": "TemplateTerraform inputs.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Required. Input variable name present in Terraform.",
          "type": "string"
        },
        "connections": {
          "description": "Required. Terraform input connections.",
          "type": "array",
          "items": {
            "$ref": "TemplateConnections"
          }
        }
      }
    },
    "DeploymentError": {
      "id": "DeploymentError",
      "description": "The error associated with the deployment.",
      "type": "object",
      "properties": {
        "tfErrors": {
          "items": {
            "$ref": "TerraformError"
          },
          "description": "Output only. The error message associated with the deployment.",
          "readOnly": true,
          "type": "array"
        },
        "code": {
          "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."
          ],
          "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"
          ],
          "description": "Output only. The deployment error code. Based on Infrastructure Manager error codes.",
          "readOnly": true,
          "type": "string"
        },
        "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": {
          "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."
          ],
          "enum": [
            "ERROR_TYPE_UNSPECIFIED",
            "PERMISSION",
            "QUOTA",
            "ALREADY_EXISTS",
            "RESOURCE_UNAVAILABLE",
            "BILLING",
            "GENERIC",
            "TERRAFORM",
            "BAD_INPUT",
            "PLATFORM",
            "API_ENABLEMENT",
            "BAD_REQUEST"
          ],
          "description": "Output only. The error type based on the deployment error code.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentFailureResolutionInfo": {
          "description": "Output only. The call to actions associated with the deployment issue.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DeploymentFailureResolutionInfo"
          }
        },
        "detail": {
          "description": "Output only. Human readable string that summarizes the deployment error issue.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "SerializedApplicationTemplate": {
      "id": "SerializedApplicationTemplate",
      "description": "Serialized application template.",
      "type": "object",
      "properties": {
        "compositionType": {
          "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."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "description": "Output only. The composition type of the applicationTemplate: STANDARD OR COMPOSITE.",
          "readOnly": true,
          "type": "string"
        },
        "hasGlobalResource": {
          "description": "Output only. Whether the application template is compatible with regional scope.",
          "readOnly": true,
          "type": "boolean"
        },
        "iacFormat": {
          "description": "Optional. The IaC format of the application template.",
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "rootOutputVariables": {
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Output only. Root level output variables of the application template.",
          "readOnly": true,
          "type": "array"
        },
        "uri": {
          "description": "Optional. The application template URI.",
          "type": "string"
        },
        "components": {
          "items": {
            "$ref": "SerializedComponent"
          },
          "description": "Optional. The application template components.",
          "type": "array"
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "displayName": {
          "description": "Optional. The application template display name.",
          "type": "string"
        },
        "apphubApplicationParameters": {
          "description": "Optional. The App Hub application parameters.",
          "$ref": "AppHubApplicationParameters"
        },
        "description": {
          "description": "Optional. The application template description.",
          "type": "string"
        },
        "applicationParameters": {
          "description": "Optional. Parameters to apply to all components in the application template.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "rootInputVariables": {
          "description": "Output only. Root level input variables of the application template.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          }
        }
      }
    },
    "ListApplicationTemplateRevisionsResponse": {
      "properties": {
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "applicationTemplateRevisions": {
          "items": {
            "$ref": "ApplicationTemplateRevision"
          },
          "description": "The list of application template revisions.",
          "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"
        }
      },
      "id": "ListApplicationTemplateRevisionsResponse",
      "description": "Message for response to listing application template revisions.",
      "type": "object"
    },
    "ListSharedTemplatesResponse": {
      "id": "ListSharedTemplatesResponse",
      "description": "Message for response to listing shared templates.",
      "type": "object",
      "properties": {
        "sharedTemplates": {
          "description": "The list of shared templates.",
          "type": "array",
          "items": {
            "$ref": "SharedTemplate"
          }
        },
        "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"
        }
      }
    },
    "CodeRange": {
      "id": "CodeRange",
      "description": "CodeRange represents a portion of code.",
      "type": "object",
      "properties": {
        "end": {
          "description": "Output only. End position.",
          "readOnly": true,
          "$ref": "CodePosition"
        },
        "start": {
          "description": "Output only. Start position.",
          "readOnly": true,
          "$ref": "CodePosition"
        }
      }
    },
    "GKEDeploymentTarget": {
      "id": "GKEDeploymentTarget",
      "description": "The GKE deployment target.",
      "type": "object",
      "properties": {
        "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": {
          "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.",
          "type": "boolean"
        },
        "clusterSelfLink": {
          "description": "Required. The self link of the cluster where GKE based application is deployed.",
          "type": "string"
        }
      }
    },
    "ComponentApplicationInfo": {
      "properties": {
        "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"
        },
        "scope": {
          "description": "Optional. Scope of apphub application.",
          "$ref": "Scope"
        },
        "deploymentRegion": {
          "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`.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Display name for the application. The number of characters should be less than 64 characters.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. Attributes of apphub application.",
          "$ref": "Attributes"
        }
      },
      "id": "ComponentApplicationInfo",
      "description": "This captures the apphub application details associated with the component.",
      "type": "object"
    },
    "MetadataInput": {
      "properties": {
        "spec": {
          "description": "Required. spec containing the metadata",
          "$ref": "MetadataInputSpec"
        }
      },
      "id": "MetadataInput",
      "description": "Metadata for the input",
      "type": "object"
    },
    "TemplateUiInput": {
      "properties": {
        "variables": {
          "description": "Required. variables is a map defining all inputs on the UI.",
          "type": "object",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          }
        }
      },
      "id": "TemplateUiInput",
      "description": "TemplateUiInput defines the list of variables and their sections on the deployment page.",
      "type": "object"
    },
    "ProjectParameters": {
      "id": "ProjectParameters",
      "description": "The ProjectParameters provides the parameters needed to deploy the application in the given project.",
      "type": "object",
      "properties": {
        "apis": {
          "description": "Output only. APIs required to be enabled to deploy the application, in the form of \"*.googleapis.com\".",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account to deploy the application in given project.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "projectId": {
          "description": "Output only. The project ID of the project.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "PreviewApplicationRequest": {
      "properties": {
        "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"
        },
        "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"
        }
      },
      "id": "PreviewApplicationRequest",
      "description": "Message for deploying an application.",
      "type": "object"
    },
    "AdcMetadata": {
      "properties": {
        "applicationUri": {
          "description": "Output only. ADC Application URI",
          "readOnly": true,
          "type": "string"
        },
        "applicationTemplateUri": {
          "description": "Output only. ADC ApplicationTemplate URI",
          "readOnly": true,
          "type": "string"
        },
        "spaceUri": {
          "description": "Output only. ADC Space URI",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "AdcMetadata",
      "description": "ADC specific information and metadata.",
      "type": "object"
    },
    "ApplicationOperationMetadata": {
      "properties": {
        "step": {
          "description": "Output only. The current step of the delete operation. Associated with Infrastructure Manager and App Hub.",
          "readOnly": true,
          "type": "string"
        },
        "build": {
          "description": "Output only. Cloud Build instance UUID associated with the delete operation.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "ApplicationOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the delete operation.",
      "type": "object"
    },
    "Parameter": {
      "properties": {
        "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.",
      "type": "object"
    },
    "RootInputVariable": {
      "id": "RootInputVariable",
      "description": "Input variable of a root module.",
      "type": "object",
      "properties": {
        "variableType": {
          "description": "Type of the input variable.",
          "type": "string"
        },
        "defaultValue": {
          "description": "Default value of the input variable.",
          "type": "any"
        },
        "variable": {
          "description": "Name of the input variable.",
          "type": "string"
        },
        "value": {
          "description": "Value for the input variable.",
          "type": "any"
        }
      }
    },
    "GitReference": {
      "properties": {
        "branch": {
          "description": "Optional. The name of the branch from which content should be read. For example: \"main\"",
          "type": "string"
        },
        "refTag": {
          "description": "Optional. The reference tag from which content should be read. For example: \"v1.2.3\"",
          "type": "string"
        },
        "commitSha": {
          "description": "Optional. The full SHA hash of a specific commit from which content should be read.",
          "type": "string"
        }
      },
      "id": "GitReference",
      "description": "The Git reference. Can be a commit SHA, branch name, or tag name.",
      "type": "object"
    },
    "TerraformModuleConfig": {
      "id": "TerraformModuleConfig",
      "description": "Configuration on how terraform module should be handled during export.",
      "type": "object",
      "properties": {
        "gitProxyEnabled": {
          "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.",
          "type": "boolean"
        },
        "localReferencesEnabled": {
          "description": "Optional. If set, all the dependent modules will be downloaded from the target repository and referenced locally.",
          "type": "boolean"
        }
      }
    },
    "ArtifactLocation": {
      "id": "ArtifactLocation",
      "description": "Defines the location for storing an artifact, such as generated IaC.",
      "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": {
          "description": "Optional. The Cloud Storage URI for storing the generated IaC.",
          "type": "string"
        }
      }
    },
    "RootOutputVariable": {
      "properties": {
        "variable": {
          "description": "Name of the output variable.",
          "type": "string"
        }
      },
      "id": "RootOutputVariable",
      "description": "Output variable of a root module.",
      "type": "object"
    },
    "ListLocationsResponse": {
      "properties": {
        "locations": {
          "items": {
            "$ref": "Location"
          },
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "id": "ListLocationsResponse",
      "description": "The response message for Locations.ListLocations.",
      "type": "object"
    },
    "TFBlueprintMetadata": {
      "id": "TFBlueprintMetadata",
      "description": "Terraform input and output metadata.",
      "type": "object",
      "properties": {
        "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"
        },
        "terraformOutput": {
          "description": "Output only. Terraform outputs.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformOutput"
          }
        },
        "iconUri": {
          "description": "Output only. The icon URI for the blueprint.",
          "readOnly": true,
          "type": "string"
        },
        "uiMetadata": {
          "description": "Output only. UI metadata for the blueprint.",
          "readOnly": true,
          "$ref": "TerraformBlueprintUiMetadata"
        },
        "terraformInput": {
          "items": {
            "$ref": "TerraformInput"
          },
          "description": "Output only. Terraform inputs.",
          "readOnly": true,
          "type": "array"
        },
        "deploymentDuration": {
          "description": "Optional. The time estimate for deploying the blueprint.",
          "type": "string",
          "format": "google-duration"
        },
        "connections": {
          "items": {
            "$ref": "TerraformInputConnections"
          },
          "description": "Output only. TODO b/358313147 - Check if connection field is required here. Union of all the Terraform input connections.",
          "readOnly": true,
          "type": "array"
        },
        "apis": {
          "description": "Output only. APIs that must be enabled to deploy the template, in the form of \"compute.googleapis.com\".",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "providerVersions": {
          "items": {
            "$ref": "ProviderVersion"
          },
          "description": "Output only. Provider versions required to deploy the blueprint.",
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "Application": {
      "id": "Application",
      "description": "Represents the application resource.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. Display name of the application.",
          "type": "string"
        },
        "deploymentProject": {
          "description": "Optional. Deployment project of the application.",
          "type": "string"
        },
        "appParameters": {
          "description": "Optional. A list of parameters to attach to the deployment source object, which is a catalog entry or application template snapshot.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "updatedTemplateRevision": {
          "description": "Output only. The updated template revision because of which the application is outdated.",
          "readOnly": true,
          "$ref": "UpdatedTemplateRevision"
        },
        "updateTime": {
          "description": "Output only. Update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "state": {
          "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."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED",
            "DEPLOYING"
          ],
          "description": "Output only. Deployment state of the application.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentMetadata": {
          "description": "Output only. Deployment metadata of the application.",
          "readOnly": true,
          "$ref": "DeploymentMetadata"
        },
        "deploymentRevision": {
          "description": "Output only. [Output only] Optional Infra Manager deployment Id with revision",
          "readOnly": true,
          "type": "string"
        },
        "apphubApplication": {
          "description": "Output only. The App Hub App associated with the application.",
          "readOnly": true,
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. Your own service account that you use to deploy an application.",
          "type": "string"
        },
        "source": {
          "description": "Required. The application deployment source.",
          "$ref": "DeploymentSource"
        },
        "importExistingResources": {
          "description": "Optional. Import existing resources into the application.",
          "type": "boolean"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this Application was last successfully exported.",
          "readOnly": true,
          "$ref": "ArtifactLocation"
        },
        "type": {
          "description": "Optional. The type of the application.",
          "type": "string",
          "enumDescriptions": [
            "Application type is unspecified.",
            "Application type is terraform application.",
            "Application type is helm application."
          ],
          "enum": [
            "APPLICATION_TYPE_UNSPECIFIED",
            "TERRAFORM_APP",
            "HELM_APP"
          ]
        },
        "compositeApplicationParameters": {
          "description": "Optional. Parameters that are required for composite applications.",
          "$ref": "CompositeApplicationParameters"
        },
        "attributes": {
          "description": "Optional. Attributes of the application.",
          "$ref": "Attributes"
        },
        "componentParameters": {
          "items": {
            "$ref": "ComponentParameters"
          },
          "description": "Optional. A list of component parameters to associate with the application.",
          "type": "array"
        },
        "deploymentTarget": {
          "description": "Optional. The deployment target of the application.",
          "$ref": "DeploymentTarget"
        },
        "paramsUpdateStrategy": {
          "description": "Optional. Specifies the strategy to use when updating the application parameters while updating the application template revision.",
          "type": "string",
          "enumDescriptions": [
            "Retains the existing value for the field.",
            "Replaces the existing field values with the provided ones."
          ],
          "enum": [
            "UPDATE_STRATEGY_UNSPECIFIED",
            "REPLACE"
          ]
        },
        "projectParameters": {
          "items": {
            "$ref": "ProjectParameters"
          },
          "description": "Output only. List of project parameters for the application.",
          "readOnly": true,
          "type": "array"
        },
        "name": {
          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
          "type": "string"
        },
        "scope": {
          "description": "Required. Scope of the application.",
          "$ref": "Scope"
        },
        "deploymentRegion": {
          "description": "Optional. The region where the application is deployed.",
          "type": "string"
        },
        "connectionConfigs": {
          "description": "Optional. Connection configuration for the application.",
          "type": "array",
          "items": {
            "$ref": "ConnectionConfig"
          }
        },
        "deploymentGroupMetadata": {
          "description": "Output only. The deployment group metadata of the application. This is applicable only for composite applications.",
          "readOnly": true,
          "$ref": "DeploymentGroupMetadata"
        },
        "previewReference": {
          "description": "Output only. Preview reference for the application.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Optional. Description of the application.",
          "type": "string"
        },
        "compositionType": {
          "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."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "description": "Output only. The composition type of the application: STANDARD OR COMPOSITE.",
          "readOnly": true,
          "type": "string"
        },
        "serializedApplicationTemplate": {
          "description": "Output only. [Output only] Serialized application template.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "createTime": {
          "description": "Output only. Create timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "Framework": {
      "properties": {
        "parentDomain": {
          "description": "Required. The domain to which this framework belongs.",
          "$ref": "Domain"
        },
        "cloudControlDetails": {
          "items": {
            "$ref": "CloudControl"
          },
          "description": "Optional. The cloud controls that are associated with the framework.",
          "type": "array"
        },
        "description": {
          "description": "Optional. The framework description.",
          "type": "string"
        },
        "name": {
          "description": "Required. The framework name.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The framework display name.",
          "type": "string"
        },
        "majorRevisionId": {
          "format": "int32",
          "description": "Optional. The major revision id of the framework.",
          "type": "integer"
        },
        "url": {
          "description": "Optional. The URL to a framework.",
          "type": "string"
        },
        "active": {
          "description": "Optional. Whether the framework is active.",
          "type": "boolean"
        },
        "deploymentStatus": {
          "enum": [
            "DEPLOYMENT_STATUS_UNSPECIFIED",
            "DEPLOYED",
            "UNDEPLOYED"
          ],
          "description": "Optional. The deployment status of the framework.",
          "type": "string",
          "enumDescriptions": [
            "Deployment status unspecified.",
            "Framework is deployed.",
            "Framework is undeployed."
          ]
        }
      },
      "id": "Framework",
      "description": "Framework for assessment.",
      "type": "object"
    },
    "ListApplicationsResponse": {
      "properties": {
        "applications": {
          "items": {
            "$ref": "Application"
          },
          "description": "The list of applications.",
          "type": "array"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Locations that could not be reached.",
          "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"
        }
      },
      "id": "ListApplicationsResponse",
      "description": "Message for response to listing applications.",
      "type": "object"
    },
    "ImportApplicationIaCRequest": {
      "id": "ImportApplicationIaCRequest",
      "description": "Request message for ImportApplicationIaC method.",
      "type": "object",
      "properties": {
        "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"
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI of the terraform code.",
          "type": "string"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        }
      }
    },
    "SharedTemplateRevision": {
      "id": "SharedTemplateRevision",
      "description": "A read-only template revision that is shared with a space.",
      "type": "object",
      "properties": {
        "sharedTemplateMetadata": {
          "description": "Output only. The shared template metadata.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "inferredMetadata": {
          "description": "Output only. Metadata that was automatically inferred from the template content.",
          "readOnly": true,
          "$ref": "InferredMetadata"
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "templateCategory": {
          "enumDescriptions": [
            "Unspecified category.",
            "ADC component template.",
            "ADC application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "ADC application instance."
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "description": "Output only. The category of the ADC template.",
          "readOnly": true,
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ]
        },
        "annotations": {
          "description": "Optional. The annotations of the shared template revision. Key is the annotation name. Value is the annotation value.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "gcsSourceUri": {
          "description": "Optional. The Cloud Storage URI, which must be in the format gs://[bucket] or gs://[bucket]/[object].",
          "type": "string"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "resourceTypes": {
          "items": {
            "$ref": "ResourceType"
          },
          "description": "Output only. The resource types present in the template revision.",
          "readOnly": true,
          "type": "array"
        },
        "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"
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "readOnly": true,
          "$ref": "HelmChartMetadata"
        },
        "description": {
          "description": "Optional. The shared template revision description.",
          "type": "string"
        },
        "applicationTemplateRevision": {
          "description": "Output only. The serialized application template revision.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "logicalProducts": {
          "items": {
            "$ref": "LogicalProduct"
          },
          "description": "Output only. The Product Main logical product type information.",
          "readOnly": true,
          "type": "array"
        },
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "type": {
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "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."
          ]
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The shared template revision creation timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "originTemplateRevision": {
          "description": "Output only. The shared template revision refers to the following catalog template revision.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "Resource": {
      "properties": {
        "name": {
          "description": "Output only. Identifier. The name of the resource.",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "description": "Output only. Current state of the resource.",
          "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."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "PLANNED",
            "IN_PROGRESS",
            "RECONCILED",
            "FAILED",
            "DRIFTED",
            "INTENDED"
          ]
        },
        "type": {
          "description": "Output only. The type of the resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "Resource",
      "description": "Status of the Resourcess in the deployment.",
      "type": "object"
    },
    "AssessmentFinding": {
      "id": "AssessmentFinding",
      "description": "Details of an Assessment Finding.",
      "type": "object",
      "properties": {
        "adcMetadata": {
          "description": "Output only. Metadata related to the ADC with the finding.",
          "readOnly": true,
          "$ref": "FindingADCMetadata"
        },
        "id": {
          "description": "Output only. The Finding ID.",
          "readOnly": true,
          "type": "string"
        },
        "assessedFramework": {
          "description": "Optional. Details of the framework that was assessed.",
          "$ref": "Framework"
        },
        "sccMetadata": {
          "description": "Output only. SCC related metadata for the finding.",
          "readOnly": true,
          "$ref": "SCCMetadata"
        },
        "remediationStep": {
          "description": "Optional. A description of the steps that users can take to fix the finding.",
          "$ref": "RemediationStep"
        },
        "assessedFrameworkId": {
          "description": "Optional. The framework that was assessed.",
          "type": "string"
        },
        "findingType": {
          "description": "Required. The type of the finding. Findings can be informational, warning, or error.",
          "type": "string",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Warning finding. ADC Deployment will not be blocked.",
            "Error finding. ADC Deployment will be blocked on ERROR."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "WARNING",
            "ERROR"
          ]
        },
        "assessedAsset": {
          "description": "Required. Details of the Cloud Asset Inventory asset that was assessed.",
          "$ref": "AssetDetails"
        },
        "severity": {
          "description": "Optional. The severity of the finding.",
          "type": "string",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Critical severity.",
            "High severity.",
            "Medium severity.",
            "Low severity."
          ],
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ]
        },
        "description": {
          "description": "Optional. Description of the finding.",
          "type": "string"
        },
        "findingsUri": {
          "description": "Optional. Link to the findings, if persisted by the domain.",
          "type": "string"
        },
        "additionalNotes": {
          "description": "Optional. A description of the additional details about finding.",
          "type": "string"
        }
      }
    },
    "MetadataInputSpec": {
      "id": "MetadataInputSpec",
      "description": "Specifications for the input",
      "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"
        }
      }
    },
    "DeveloperConnectExportConfig": {
      "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"
        },
        "branch": {
          "description": "Optional. The branch in repo to which the content such as Infrastructure as Code (IaC) should be written to. If empty, ADC will create a branch and push the changes.",
          "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"
        }
      },
      "id": "DeveloperConnectExportConfig",
      "description": "Through Developer Connect, defines a location where content such as Infrastructure as Code (IaC) is stored.",
      "type": "object"
    },
    "ApplyCondition": {
      "properties": {
        "conditionKey": {
          "description": "Required. The key of the parameter for the condition.",
          "type": "string"
        },
        "conditionValue": {
          "description": "Required. The value of the parameter for the condition.",
          "type": "string"
        }
      },
      "id": "ApplyCondition",
      "description": "Condition for applying the policy. Condition accepts AppTemplate parameters like criticality, environment only.",
      "type": "object"
    },
    "SharedTemplate": {
      "properties": {
        "latestRevisionId": {
          "description": "Output only. Latest revision of the shared template.",
          "readOnly": true,
          "type": "string"
        },
        "templateCategory": {
          "description": "Required. The category of the ADC template.",
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "ADC component template.",
            "ADC application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "ADC application instance."
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "createTime": {
          "description": "Output only. The shared template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. The shared template update timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "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."
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        },
        "displayName": {
          "description": "Optional. The shared template display name.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The shared template name. projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate",
          "type": "string"
        },
        "description": {
          "description": "Optional. The shared template description.",
          "type": "string"
        },
        "originTemplate": {
          "description": "Output only. The origin template of the shared template.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "SharedTemplate",
      "description": "A read-only template that is shared with a space.",
      "type": "object"
    },
    "DeploymentMetadata": {
      "id": "DeploymentMetadata",
      "description": "Deployment information for the application.",
      "type": "object",
      "properties": {
        "build": {
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true,
          "type": "string"
        },
        "error": {
          "description": "Output only. The error associated with the deployment.",
          "readOnly": true,
          "$ref": "DeploymentError"
        },
        "componentOutputParameters": {
          "items": {
            "$ref": "ComponentOutputParameters"
          },
          "description": "Output only. The component output parameters of the deployment.",
          "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"
        },
        "revision": {
          "description": "Output only. The revision of the deployment associated with the Application.",
          "readOnly": true,
          "type": "string"
        },
        "retryAttempts": {
          "description": "Output only. The attempted number of deployment retries.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "applicationOutputParameters": {
          "description": "Output only. The application output parameters of the deployment.",
          "readOnly": true,
          "$ref": "ApplicationOutputParameters"
        }
      }
    },
    "ProjectParametersList": {
      "id": "ProjectParametersList",
      "description": "Provides the list of project parameters needed to deploy an application.",
      "type": "object",
      "properties": {
        "projectParameters": {
          "items": {
            "$ref": "ProjectParameters"
          },
          "description": "Output only. List of project parameters for the application.",
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "DeveloperConnectSourceConfig": {
      "id": "DeveloperConnectSourceConfig",
      "description": "This config specifies the location of a source (such as GitHub or Bitbucket) through Developer Connect.",
      "type": "object",
      "properties": {
        "developerConnectRepoUri": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.",
          "type": "string"
        },
        "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"
        },
        "reference": {
          "description": "Required. The reference (for example, a branch, tag, or commit SHA) from which the content should be read.",
          "$ref": "GitReference"
        },
        "fetchedCommitSha": {
          "description": "Output only. The SHA of the commit deduced from GitReference.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "TemplateConnections": {
      "id": "TemplateConnections",
      "description": "TemplateConnections",
      "type": "object",
      "properties": {
        "source": {
          "description": "Required. Source of the connection.",
          "$ref": "ConnectionSource"
        },
        "spec": {
          "description": "Required. Connection specifications.",
          "$ref": "ConnectionSpec"
        }
      }
    },
    "Binding": {
      "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"
        },
        "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"
        },
        "members": {
          "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`.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "Binding",
      "description": "Associates `members`, or principals, with a `role`.",
      "type": "object"
    },
    "GenerateApplicationTemplateIaCRequest": {
      "properties": {
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        },
        "iacFormat": {
          "description": "Optional. The IaC format to generate.",
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI to write the generated IaC to. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        }
      },
      "id": "GenerateApplicationTemplateIaCRequest",
      "description": "Request message for GenerateApplicationTemplateIaC method.",
      "type": "object"
    },
    "HelmChartMetadata": {
      "properties": {
        "helmInput": {
          "items": {
            "$ref": "HelmChartInput"
          },
          "description": "Output only. Helm Chart inputs.",
          "readOnly": true,
          "type": "array"
        },
        "helmOutput": {
          "items": {
            "$ref": "HelmChartOutput"
          },
          "description": "Output only. Helm Chart outputs.",
          "readOnly": true,
          "type": "array"
        }
      },
      "id": "HelmChartMetadata",
      "description": "Helm Chart metadata.",
      "type": "object"
    },
    "ListCatalogTemplateRevisionsResponse": {
      "properties": {
        "catalogTemplateRevisions": {
          "items": {
            "$ref": "CatalogTemplateRevision"
          },
          "description": "The list of template revisions.",
          "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"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "ListCatalogTemplateRevisionsResponse",
      "description": "Message for response to listing template revisions.",
      "type": "object"
    },
    "ValueLabelInput": {
      "id": "ValueLabelInput",
      "description": "Value label input for a UI.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Optional. Value of the enum.",
          "type": "string"
        },
        "label": {
          "description": "Optional. Label of the enum.",
          "type": "string"
        }
      }
    },
    "RemediationStep": {
      "id": "RemediationStep",
      "description": "Remediation steps that can be taken to rectify the finding.",
      "type": "object",
      "properties": {
        "note": {
          "description": "Optional. Any other note related to the remediation.",
          "type": "string"
        },
        "remediationDocumentationUrl": {
          "description": "Optional. Remediation documentation URL.",
          "type": "string"
        },
        "remediationSteps": {
          "items": {
            "type": "string"
          },
          "description": "Required. A description of the steps that users can take to remediate the findings.",
          "type": "array"
        }
      }
    },
    "ListConnectionsResponse": {
      "properties": {
        "connections": {
          "items": {
            "$ref": "Connection"
          },
          "description": "The list of connections.",
          "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"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        }
      },
      "id": "ListConnectionsResponse",
      "description": "Message for response to listing connections.",
      "type": "object"
    },
    "HelmChartInput": {
      "id": "HelmChartInput",
      "description": "Helm Chart inputs. Documentation: https://helm.sh/docs/",
      "type": "object",
      "properties": {
        "description": {
          "description": "Output only. Input variable description.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. Input data type.",
          "readOnly": true,
          "type": "string"
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        },
        "helmInputVariable": {
          "description": "Output only. Input variable name present in Helm Chart values.yaml",
          "readOnly": true,
          "type": "string"
        },
        "nestedInputs": {
          "description": "Output only. Contains details of nested inputs.",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "HelmChartInput"
          }
        },
        "defaultValue": {
          "description": "Output only. The default value of the input variable.",
          "readOnly": true,
          "type": "any"
        }
      }
    },
    "DisplayVariable": {
      "id": "DisplayVariable",
      "description": "Additional display specific Template pertaining to a particular input variable.",
      "type": "object",
      "properties": {
        "validation": {
          "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.",
          "type": "string"
        },
        "name": {
          "description": "Required. The variable name from the corresponding standard Template file.",
          "type": "string"
        },
        "regexValidation": {
          "description": "Optional. Regex based validation rules for the variable.",
          "type": "string"
        },
        "subtext": {
          "description": "Optional. Property subtext, displayed below the title.",
          "type": "string"
        },
        "alternateDefaults": {
          "description": "Optional. Alternate defaults for the input.",
          "type": "array",
          "items": {
            "$ref": "AlternateDefaultInput"
          }
        },
        "max": {
          "format": "float",
          "description": "Optional. Maximum value for numeric types.",
          "type": "number"
        },
        "title": {
          "description": "Required. Visible title for the variable on the UI.",
          "type": "string"
        },
        "enumValueLabels": {
          "description": "Optional. Labels for enum values. Values must be UTF-8 text with no markup, and at most 64 characters.",
          "type": "array",
          "items": {
            "$ref": "ValueLabelInput"
          }
        },
        "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.",
          "type": "integer",
          "format": "int32"
        },
        "properties": {
          "description": "Optional. properties is a map defining all the fields of the input variable.",
          "type": "object",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          }
        },
        "min": {
          "format": "float",
          "description": "Optional. Minimum value for numeric types.",
          "type": "number"
        }
      }
    },
    "FetchApplicationAssessmentReportResponse": {
      "id": "FetchApplicationAssessmentReportResponse",
      "description": "Message for response of fetching an application assessment report.",
      "type": "object",
      "properties": {
        "assessmentReport": {
          "description": "Assessment report for the application.",
          "$ref": "AssessmentReport"
        }
      }
    },
    "ImportApplicationTemplateRequest": {
      "id": "ImportApplicationTemplateRequest",
      "description": "Request message for ImportApplicationTemplate method.",
      "type": "object",
      "properties": {
        "annotations": {
          "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\", }",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "applicationTemplateSystemRevision": {
          "description": "Optional. The system revision to be imported. Used when user tries to Restore (rev X) or perform Undo/Redo operations.",
          "type": "string"
        },
        "sharedTemplateRevisionUri": {
          "description": "Optional. The source URI for catalog template.",
          "type": "string"
        },
        "serializedApplicationTemplate": {
          "description": "Optional. The serialized application template to be imported.",
          "$ref": "SerializedApplicationTemplate"
        },
        "applicationTemplateRevisionUri": {
          "description": "Optional. The source URI for application template revision.",
          "type": "string"
        }
      }
    },
    "CommitApplicationTemplateRequest": {
      "properties": {},
      "id": "CommitApplicationTemplateRequest",
      "description": "Request message for CommitApplicationTemplate method.",
      "type": "object"
    },
    "AuditLogConfig": {
      "properties": {
        "exemptedMembers": {
          "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "logType": {
          "description": "The log type that this config enables.",
          "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"
          ],
          "enum": [
            "LOG_TYPE_UNSPECIFIED",
            "ADMIN_READ",
            "DATA_WRITE",
            "DATA_READ"
          ]
        }
      },
      "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.",
      "type": "object"
    },
    "ConnectionParameters": {
      "id": "ConnectionParameters",
      "description": "Connection level parameters associated with each component within an application.",
      "type": "object",
      "properties": {
        "connection": {
          "description": "Required. The name of the connection parameter.",
          "type": "string"
        },
        "parameters": {
          "description": "Optional. A list of parameters associated with the connection.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "Channel": {
      "id": "Channel",
      "description": "Separate message to accommodate custom formats across IRC and Slack.",
      "type": "object",
      "properties": {
        "uri": {
          "description": "Required. URI of the channel.",
          "type": "string"
        }
      }
    },
    "DeploymentUnitProgress": {
      "properties": {
        "unitId": {
          "description": "Output only. Deployment unit ID",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "deploymentStep": {
          "description": "Output only. Current deployment step",
          "readOnly": true,
          "type": "string"
        },
        "deploymentUnitStep": {
          "description": "Output only. Current deployment unit step",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "DeploymentUnitProgress",
      "description": "Single deployment unit progress info",
      "type": "object"
    },
    "TerraformUiInputDisplayVariable": {
      "properties": {
        "alternateDefaults": {
          "items": {
            "$ref": "AlternateDefault"
          },
          "description": "Output only. Alternate defaults for the input.",
          "readOnly": true,
          "type": "array"
        },
        "max": {
          "description": "Output only. Maximum value for numeric types.",
          "readOnly": true,
          "type": "number",
          "format": "float"
        },
        "toggleUsingVariables": {
          "description": "Output only. Variables used to toggle the display of another variable.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DisplayVariableToggle"
          }
        },
        "title": {
          "description": "Output only. Title of the input.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "level": {
          "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.",
          "readOnly": true,
          "type": "integer"
        },
        "properties": {
          "description": "Output only. A map that defines all fields of the input variable.",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          }
        },
        "min": {
          "description": "Output only. Minimum value for numeric types.",
          "readOnly": true,
          "type": "number",
          "format": "float"
        },
        "validation": {
          "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.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "Output only. Display name of the input.",
          "readOnly": true,
          "type": "string"
        },
        "regexValidation": {
          "description": "Output only. Regex based validation rules for the variable.",
          "readOnly": true,
          "type": "string"
        },
        "subtext": {
          "description": "Output only. Property subtext, displayed below the title.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "TerraformUiInputDisplayVariable",
      "description": "Terraform blueprint UI input display variable.",
      "type": "object"
    },
    "TemplateRoles": {
      "id": "TemplateRoles",
      "description": "Template Roles provide the level and roles",
      "type": "object",
      "properties": {
        "level": {
          "description": "Required. Level of the role.",
          "type": "string"
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Required. List of roles.",
          "type": "array"
        }
      }
    },
    "DomainRedirectInfo": {
      "id": "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"
        }
      }
    },
    "ListComponentsResponse": {
      "properties": {
        "components": {
          "description": "The list of components.",
          "type": "array",
          "items": {
            "$ref": "Component"
          }
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "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"
        }
      },
      "id": "ListComponentsResponse",
      "description": "Message for response to listing components.",
      "type": "object"
    },
    "SyncShareRequest": {
      "id": "SyncShareRequest",
      "description": "Message for syncing a share of a catalog.",
      "type": "object",
      "properties": {}
    },
    "TestIamPermissionsResponse": {
      "properties": {
        "permissions": {
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "TestIamPermissionsResponse",
      "description": "Response message for `TestIamPermissions` method.",
      "type": "object"
    },
    "GenerateApplicationTemplateIaCResponse": {
      "properties": {
        "gcsUri": {
          "description": "The Cloud Storage URI of the generated IaC. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template.",
          "$ref": "RootModulesMetadata"
        }
      },
      "id": "GenerateApplicationTemplateIaCResponse",
      "description": "Response message for GenerateApplicationTemplateIaC method.",
      "type": "object"
    },
    "ListOperationsResponse": {
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Operation"
          }
        },
        "unreachable": {
          "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.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations.",
      "type": "object"
    },
    "GenerateApplicationTemplateRevisionIaCResponse": {
      "id": "GenerateApplicationTemplateRevisionIaCResponse",
      "description": "Response message for GenerateApplicationTemplateRevisionIaC method.",
      "type": "object",
      "properties": {
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template revision.",
          "$ref": "RootModulesMetadata"
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        }
      }
    },
    "ApplicationTemplate": {
      "id": "ApplicationTemplate",
      "description": "Application template resource.",
      "type": "object",
      "properties": {
        "latestSystemRevisionUri": {
          "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.",
          "readOnly": true,
          "type": "string"
        },
        "serializedApplicationTemplate": {
          "description": "Output only. The serialized application template.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "createTime": {
          "description": "Output only. Application template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate was last successfully exported.",
          "readOnly": true,
          "$ref": "ArtifactLocation"
        },
        "compositionType": {
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "description": "Optional. Immutable. The composition type of the applicationTemplate: STANDARD OR COMPOSITE. This is a create time only param. In future, we may support conversion from STANDARD to COMPOSITE.",
          "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."
          ]
        },
        "iacFormat": {
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "description": "Output only. The IaC format of the application template.",
          "readOnly": true,
          "type": "string"
        },
        "rootOutputVariables": {
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Optional. Root level output variables of the application template.",
          "type": "array"
        },
        "description": {
          "description": "Optional. Application template description.",
          "type": "string"
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "name": {
          "description": "Identifier. Application template name.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. Application template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "applicationParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. Parameters to apply to all components in an application. You can specify projectID and region.",
          "type": "array"
        },
        "latestRevision": {
          "description": "Output only. The latest application template revision.",
          "readOnly": true,
          "type": "string"
        },
        "rootInputVariables": {
          "description": "Optional. Root level input variables of the application template.",
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          }
        },
        "displayName": {
          "description": "Optional. Application template display name.",
          "type": "string"
        }
      }
    },
    "ImportApplicationIaCResponse": {
      "properties": {
        "errors": {
          "description": "Errors encountered during import.",
          "type": "array",
          "items": {
            "$ref": "ImportIaCError"
          }
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "description": "The state of the import.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ]
        },
        "application": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "Application"
        }
      },
      "id": "ImportApplicationIaCResponse",
      "description": "Response message for ImportApplicationIaC method.",
      "type": "object"
    },
    "Expr": {
      "properties": {
        "expression": {
          "description": "Textual representation of an expression in Common Expression Language syntax.",
          "type": "string"
        },
        "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"
        },
        "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"
        },
        "location": {
          "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
          "type": "string"
        }
      },
      "id": "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.",
      "type": "object"
    },
    "AppHubApplicationParameters": {
      "properties": {
        "hostProjectId": {
          "description": "Optional. The host project ID where the App Hub application is created.",
          "type": "string"
        },
        "scope": {
          "description": "Optional. The App Hub application scope.",
          "$ref": "Scope"
        },
        "applicationId": {
          "description": "Optional. The App Hub application ID.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. The App Hub application attributes.",
          "$ref": "Attributes"
        },
        "location": {
          "description": "Optional. The App Hub application location. Only used for applications with REGIONAL scope.",
          "type": "string"
        }
      },
      "id": "AppHubApplicationParameters",
      "description": "App Hub application parameters.",
      "type": "object"
    },
    "DeploymentSource": {
      "properties": {
        "sharedTemplateRevisionUri": {
          "description": "Shared template revision URI.",
          "type": "string"
        },
        "applicationTemplateRevision": {
          "description": "Application template revision URI.",
          "type": "string"
        }
      },
      "id": "DeploymentSource",
      "description": "Source template information for the deployment.",
      "type": "object"
    },
    "DeploymentOperationMetadata": {
      "id": "DeploymentOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the deployment operation.",
      "type": "object",
      "properties": {
        "deploymentBuild": {
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true,
          "type": "string"
        },
        "previousAttempt": {
          "description": "Previous deployment attempt metadata.",
          "$ref": "DeploymentAttemptMetadata"
        },
        "deployment": {
          "description": "Output only. The name of the deployment associated with the application.",
          "readOnly": true,
          "type": "string"
        },
        "resources": {
          "description": "Details of the Resourcess in the deployment.",
          "type": "array",
          "items": {
            "$ref": "Resource"
          }
        },
        "deploymentLogs": {
          "description": "Output only. Location of the deployment operation logs in `gs://{bucket}/{object}` format.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentStep": {
          "description": "Output only. The current step of the deployment. This will mimic the DeploymentStep enum in the deployment proto.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "Catalog": {
      "properties": {
        "description": {
          "description": "Optional. The catalog description.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The catalog update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The catalog creation timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The catalog display name.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
          "type": "string"
        }
      },
      "id": "Catalog",
      "description": "A collection of templates.",
      "type": "object"
    },
    "AlternateDefaultInput": {
      "id": "AlternateDefaultInput",
      "description": "Alternate default input for a UI.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Optional. Type of alternate default.",
          "type": "string",
          "enumDescriptions": [
            "Default",
            "A more secure default.",
            "A default specifically needed for Application Design center."
          ],
          "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"
        }
      }
    },
    "Status": {
      "properties": {
        "details": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array"
        },
        "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"
        },
        "code": {
          "format": "int32",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer"
        }
      },
      "id": "Status",
      "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).",
      "type": "object"
    },
    "CancelOperationRequest": {
      "id": "CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation.",
      "type": "object",
      "properties": {}
    },
    "Location": {
      "id": "Location",
      "description": "A resource that represents a Google Cloud location.",
      "type": "object",
      "properties": {
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        }
      }
    },
    "Scope": {
      "properties": {
        "type": {
          "description": "Required. Scope Type.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Regional type.",
            "Global type."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "REGIONAL",
            "GLOBAL"
          ]
        }
      },
      "id": "Scope",
      "description": "Scope of an application.",
      "type": "object"
    },
    "GenerateAssessmentReportRequest": {
      "properties": {
        "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"
        },
        "terraformPlan": {
          "description": "Required. Terraform plan bytes.",
          "type": "string",
          "format": "byte"
        }
      },
      "id": "GenerateAssessmentReportRequest",
      "description": "Message for the request to generate a best practice report for a given Terraform plan.",
      "type": "object"
    },
    "ProviderVersion": {
      "id": "ProviderVersion",
      "description": "ProviderVersion defines the required version for a provider.",
      "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"
        }
      }
    },
    "DeployApplicationRequest": {
      "id": "DeployApplicationRequest",
      "description": "Message for deploying 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"
        },
        "replace": {
          "description": "Optional. Flag to update the existing deployment. If not set or false, deploy will fail if application `state` is in the `DEPLOYED` state.",
          "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"
        }
      }
    },
    "InferredMetadata": {
      "properties": {
        "description": {
          "description": "Output only. Inferred description.",
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. Inferred metadata update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "templateMetadata": {
          "description": "Output only. Inferred template metadata related to Terraform input and output.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. Inferred metadata creation timestamp.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "InferredMetadata",
      "description": "Inferred metadata.",
      "type": "object"
    },
    "ListCatalogsResponse": {
      "properties": {
        "nextPageToken": {
          "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.",
          "type": "string"
        },
        "catalogs": {
          "description": "A list of catalogs",
          "type": "array",
          "items": {
            "$ref": "Catalog"
          }
        }
      },
      "id": "ListCatalogsResponse",
      "description": "Results returned from catalogs.list.",
      "type": "object"
    },
    "CodePosition": {
      "id": "CodePosition",
      "description": "CodePosition represents a code location.",
      "type": "object",
      "properties": {
        "column": {
          "format": "int32",
          "description": "Output only. One-based column count of the relevant position.",
          "readOnly": true,
          "type": "integer"
        },
        "line": {
          "description": "Output only. One-based line count of the relevant position.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "byteOffset": {
          "description": "Output only. Byte offset in the content.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "CatalogTemplate": {
      "id": "CatalogTemplate",
      "description": "A template inside a catalog.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. The display name of a catalog template.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The catalog template name in following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
          "type": "string"
        },
        "description": {
          "description": "Optional. The catalog template description.",
          "type": "string"
        },
        "uuid": {
          "description": "Output only. The template revisions UUID.",
          "readOnly": true,
          "type": "string"
        },
        "latestRevisionId": {
          "description": "Output only. Latest revision of the template.",
          "readOnly": true,
          "type": "string"
        },
        "templateCategory": {
          "description": "Required. The category of the ADC template.",
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "ADC component template.",
            "ADC application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "ADC application instance."
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "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."
          ]
        }
      }
    },
    "CloudControl": {
      "properties": {
        "description": {
          "description": "Optional. The description of the cloud control.",
          "type": "string"
        },
        "name": {
          "description": "Required. The name of the cloud control.",
          "type": "string"
        },
        "majorRevisionId": {
          "format": "int32",
          "description": "Required. The major revision id of the cloud control.",
          "type": "integer"
        },
        "enforcementMode": {
          "enum": [
            "ENFORCEMENT_MODE_UNSPECIFIED",
            "PREVENTIVE",
            "DETECTIVE",
            "AUDIT"
          ],
          "description": "Optional. The enforcement mode of the cloud control.",
          "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."
          ]
        }
      },
      "id": "CloudControl",
      "description": "Cloud control for a framework.",
      "type": "object"
    },
    "AssessmentReport": {
      "properties": {
        "adcApplicationUri": {
          "description": "Output only. ADC Application URI.",
          "readOnly": true,
          "type": "string"
        },
        "adcApplicationTemplateUri": {
          "description": "Output only. ADC Application Template URI.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time at which the report was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "adcSpaceUri": {
          "description": "Output only. ADC Space URI.",
          "readOnly": true,
          "type": "string"
        },
        "domainAssessmentReports": {
          "description": "Output only. Generated best practice reports.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DomainAssessmentReport"
          }
        },
        "skippedDomains": {
          "items": {
            "$ref": "SkippedDomain"
          },
          "description": "Output only. Skipped domains.",
          "readOnly": true,
          "type": "array"
        },
        "adcCatalogTemplateUri": {
          "description": "Output only. ADC Catalog Template URI.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "AssessmentReport",
      "description": "Aggregated assessment report from all domains.",
      "type": "object"
    },
    "Environment": {
      "properties": {
        "type": {
          "description": "Required. Environment Type.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Production environment.",
            "Staging environment.",
            "Test environment.",
            "Development environment."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "PRODUCTION",
            "STAGING",
            "TEST",
            "DEVELOPMENT"
          ]
        },
        "environment": {
          "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.",
          "deprecated": true,
          "type": "string"
        }
      },
      "id": "Environment",
      "description": "Environment of the Application, Service, or Workload",
      "type": "object"
    },
    "ComponentOutputParameters": {
      "id": "ComponentOutputParameters",
      "description": "The component output parameters of the deployment.",
      "type": "object",
      "properties": {
        "component": {
          "description": "Output only. The component name of the output parameters.",
          "readOnly": true,
          "type": "string"
        },
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Output only. The output parameters of the component.",
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "DeploymentFailureResolutionInfo": {
      "id": "DeploymentFailureResolutionInfo",
      "description": "The call to action associated with the deployment issue.",
      "type": "object",
      "properties": {
        "resolutionLink": {
          "description": "Output only. Link for the call to action.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        }
      }
    },
    "ApplicationTemplateRevision": {
      "id": "ApplicationTemplateRevision",
      "description": "Application template revision resource.",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate Revision was last successfully exported.",
          "readOnly": true,
          "$ref": "ArtifactLocation"
        },
        "name": {
          "description": "Identifier. The application template revision name.",
          "type": "string"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The application template revision creation timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "snapshot": {
          "description": "Output only. The serialized application template.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        }
      }
    },
    "Share": {
      "properties": {
        "destinationSpace": {
          "description": "Required. The space resource path to which the catalog is shared. Format is `projects/$project/locations/$location/spaces/$space`",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The share creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "IN_SYNC",
            "OUT_OF_SYNC"
          ],
          "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."
          ],
          "description": "Output only. The state of the share.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "Share",
      "description": "A catalog share between spaces.",
      "type": "object"
    },
    "HelmChartOutput": {
      "properties": {
        "value": {
          "description": "Output only. Type of output.",
          "readOnly": true,
          "type": "any"
        },
        "description": {
          "description": "Output only. Description of the variable.",
          "readOnly": true,
          "type": "string"
        },
        "helmOutputVariable": {
          "description": "Output only. Output variable name present.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "HelmChartOutput",
      "description": "Helm Chart outputs.",
      "type": "object"
    },
    "TerraformOutput": {
      "id": "TerraformOutput",
      "description": "Terraform outputs.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Output only. Type of Terraform output.",
          "readOnly": true,
          "type": "any"
        },
        "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"
        }
      }
    },
    "TemplateInfo": {
      "properties": {
        "actuationTool": {
          "description": "Required. IaCFormatInfo defines the actuation tool used to provision the Template.",
          "$ref": "IacFormatInfo"
        }
      },
      "id": "TemplateInfo",
      "description": "TemplateInfo provides the actuation tool information.",
      "type": "object"
    },
    "Domain": {
      "id": "Domain",
      "description": "Domain for assessment.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. The domain display name is user friendly name used for UI.",
          "type": "string"
        },
        "domainName": {
          "description": "Required. The domain name. Uniquely identifies the domain.",
          "type": "string"
        },
        "inactive": {
          "description": "Optional. Whether the domain is inactive. Default: false.",
          "type": "boolean"
        },
        "frameworks": {
          "description": "Optional. The frameworks that are applicable in this domain.",
          "type": "array",
          "items": {
            "$ref": "Framework"
          }
        },
        "description": {
          "description": "Optional. The domain description.",
          "type": "string"
        }
      }
    },
    "RootModulesMetadata": {
      "properties": {
        "rootModules": {
          "description": "List of terraform root modules.",
          "type": "array",
          "items": {
            "$ref": "RootModule"
          }
        }
      },
      "id": "RootModulesMetadata",
      "description": "Root modules metadata.",
      "type": "object"
    },
    "AlternateDefault": {
      "id": "AlternateDefault",
      "description": "Alternate default for a UI input.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Output only. Type of alternate default.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default",
            "A more secure default.",
            "A default specifically needed for Application Design center."
          ],
          "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"
        }
      }
    },
    "SaaSRuntimeContext": {
      "id": "SaaSRuntimeContext",
      "description": "SaaS runtime context.",
      "type": "object",
      "properties": {
        "saasNames": {
          "items": {
            "type": "string"
          },
          "description": "Optional. The SaaS names. Format for each SaaS: projects/{project}/locations/{location}/saas/{saas}",
          "type": "array"
        }
      }
    },
    "SCCMetadata": {
      "id": "SCCMetadata",
      "description": "SCC metadata for the assessment finding.",
      "type": "object",
      "properties": {
        "findingClass": {
          "description": "Optional. The SCC finding class. Also known as category.",
          "type": "string"
        },
        "findingType": {
          "description": "Optional. The SCC finding type.",
          "type": "string"
        }
      }
    },
    "Empty": {
      "properties": {},
      "id": "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"
    },
    "RootModule": {
      "id": "RootModule",
      "description": "Metadata for a root module.",
      "type": "object",
      "properties": {
        "id": {
          "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.",
          "type": "string"
        },
        "outputVariables": {
          "description": "List of output variables of this root module.",
          "type": "array",
          "items": {
            "$ref": "RootOutputVariable"
          }
        },
        "dependencies": {
          "items": {
            "$ref": "RootModuleDependency"
          },
          "description": "Dependencies of this root module. The dependency graph of root modules must be acyclic.",
          "type": "array"
        },
        "components": {
          "items": {
            "type": "string"
          },
          "description": "List of ADC 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.",
          "type": "array"
        },
        "inputVariables": {
          "description": "List of input variables of this root module.",
          "type": "array",
          "items": {
            "$ref": "RootInputVariable"
          }
        }
      }
    },
    "GenerateApplicationTemplateAssessmentReportRequest": {
      "properties": {
        "serviceAccount": {
          "description": "Optional. The email address of the service account to use for this preview operation. - 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}",
          "type": "string"
        }
      },
      "id": "GenerateApplicationTemplateAssessmentReportRequest",
      "description": "Message for generate assessment report application template.",
      "type": "object"
    },
    "AssessedFramework": {
      "properties": {
        "findings": {
          "description": "Required. A list of every Finding found during the assessment.",
          "type": "array",
          "items": {
            "$ref": "AssessmentFinding"
          }
        },
        "scoreCard": {
          "description": "Optional. Score card associated with the report.",
          "$ref": "ScoreCard"
        },
        "skipped": {
          "description": "Optional. Whether the framework was skipped during assessment.",
          "type": "boolean"
        },
        "skippedReason": {
          "description": "Optional. Reason for skipping the framework during assessment.",
          "type": "string"
        },
        "framework": {
          "description": "Required. The framework that was assessed.",
          "$ref": "Framework"
        }
      },
      "id": "AssessedFramework",
      "description": "Framework assessed and their findings.",
      "type": "object"
    },
    "FetchFrameworksResponse": {
      "properties": {
        "frameworks": {
          "description": "The list of frameworks.",
          "type": "array",
          "items": {
            "$ref": "Framework"
          }
        },
        "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",
      "description": "Response for FetchFrameworks rpc",
      "type": "object"
    },
    "ResourceType": {
      "properties": {
        "caisResource": {
          "description": "Output only. The CAIS resource type.",
          "readOnly": true,
          "type": "string"
        },
        "tfResource": {
          "description": "Output only. The Terraform resource type. For example: \"google_compute_instance\".",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "ResourceType",
      "description": "Represents the type of a resource within a component template.",
      "type": "object"
    },
    "AuditConfig": {
      "properties": {
        "service": {
          "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.",
          "type": "string"
        },
        "auditLogConfigs": {
          "description": "The configuration for logging of each type of permission.",
          "type": "array",
          "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.",
      "type": "object"
    },
    "DeploymentTarget": {
      "id": "DeploymentTarget",
      "description": "The deployment target of the application.",
      "type": "object",
      "properties": {
        "gkeDeploymentTarget": {
          "description": "Optional. The GKE deployment target.",
          "$ref": "GKEDeploymentTarget"
        }
      }
    },
    "ExportApplicationTemplateRevisionIaCRequest": {
      "id": "ExportApplicationTemplateRevisionIaCRequest",
      "description": "Request message for ExportApplicationTemplateRevisionIaC 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"
        }
      }
    },
    "GenerateApplicationIaCResponse": {
      "properties": {
        "gcsUri": {
          "description": "The Cloud Storage URI of the generated IaC. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application.",
          "$ref": "RootModulesMetadata"
        }
      },
      "id": "GenerateApplicationIaCResponse",
      "description": "Response message for GenerateApplicationIaC method.",
      "type": "object"
    },
    "ConnectionSpec": {
      "id": "ConnectionSpec",
      "description": "Defines the specifications of a connection.",
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "Optional. Optional dot separated attribuite notation to connect to a specific object field of the input variable.",
          "type": "string"
        },
        "outputExpr": {
          "description": "Required. Output expression identifying output being connected to variable.",
          "type": "string"
        }
      }
    },
    "SerializedConnection": {
      "properties": {
        "uri": {
          "description": "Optional. The connection URI.",
          "type": "string"
        },
        "destinationComponentUri": {
          "description": "Optional. The destination component URI used to generate the connection.",
          "type": "string"
        },
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "destinationComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "type": "array"
        }
      },
      "id": "SerializedConnection",
      "description": "Serialized connection.",
      "type": "object"
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "target": {
          "description": "Output only. The server defined resource path for the target of the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusMessage": {
          "description": "Output only. Human readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "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`.",
          "readOnly": true,
          "type": "boolean"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "previewMetadata": {
          "description": "Output only. The application preview metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "PreviewOperationMetadata"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        },
        "applicationMetadata": {
          "description": "Output only. The application delete metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "ApplicationOperationMetadata"
        },
        "deploymentGroupMetadata": {
          "description": "Output only. The Provision Deployment Group Metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "ProvisionDeploymentGroupOperationMetadata"
        },
        "endTime": {
          "format": "google-datetime",
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentMetadata": {
          "description": "Output only. The application deployment metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "DeploymentOperationMetadata"
        }
      }
    },
    "Connection": {
      "id": "Connection",
      "description": "Connection resource.",
      "type": "object",
      "properties": {
        "updateTime": {
          "description": "Output only. The connection update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "destinationComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "type": "array"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The connection creation timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "sourceComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array"
        },
        "name": {
          "description": "Identifier. The connection name.",
          "type": "string"
        }
      }
    },
    "ConnectionConfig": {
      "id": "ConnectionConfig",
      "description": "Connection configuration for the application.",
      "type": "object",
      "properties": {
        "sourceComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array"
        },
        "destinationComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "type": "array"
        },
        "connectionUri": {
          "description": "Required. The connection URI.",
          "type": "string"
        }
      }
    },
    "ComponentVariable": {
      "id": "ComponentVariable",
      "description": "The details of an input/output variable: the variable and the component Uri. name.",
      "type": "object",
      "properties": {
        "variable": {
          "description": "Required. Name of the variable.",
          "type": "string"
        },
        "componentUri": {
          "description": "Required. Component to which this variable belongs.",
          "type": "string"
        }
      }
    },
    "GenerateApplicationIaCRequest": {
      "id": "GenerateApplicationIaCRequest",
      "description": "Request message for GenerateApplicationIaC method.",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI to write the generated IaC to. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        },
        "iacFormat": {
          "description": "Optional. The IaC format to generate.",
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        }
      }
    },
    "ListCatalogTemplatesResponse": {
      "properties": {
        "catalogTemplates": {
          "items": {
            "$ref": "CatalogTemplate"
          },
          "description": "The list of catalog templates.",
          "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"
        }
      },
      "id": "ListCatalogTemplatesResponse",
      "description": "Message for response to listing catalog templates.",
      "type": "object"
    },
    "TerraformConfig": {
      "id": "TerraformConfig",
      "description": "Configuration for exporting a resource as Terraform IAC.",
      "type": "object",
      "properties": {
        "tfModuleConfig": {
          "description": "Optional. Configuration on how terraform module should be handled during export.",
          "$ref": "TerraformModuleConfig"
        }
      }
    },
    "ProvisionDeploymentGroupOperationMetadata": {
      "properties": {
        "deploymentStep": {
          "enumDescriptions": [
            "Unspecified deployment step.",
            "Generating Terraform content for the application.",
            "Deploying the application.",
            "Operation was successful.",
            "Operation failed."
          ],
          "enum": [
            "DEPLOYMENT_STEP_UNSPECIFIED",
            "GENERATING_TERRAFORM_CONTENT",
            "DEPLOYING",
            "SUCCEEDED",
            "FAILED"
          ],
          "description": "Output only. Current step of deploying composite application",
          "readOnly": true,
          "type": "string"
        },
        "deploymentUnitProgress": {
          "description": "Output only. List of deployment unit deployment progress",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DeploymentUnitProgress"
          }
        }
      },
      "id": "ProvisionDeploymentGroupOperationMetadata",
      "description": "Represents the Provision Deployment Group operation metadata.",
      "type": "object"
    },
    "ListSharedTemplateRevisionsResponse": {
      "id": "ListSharedTemplateRevisionsResponse",
      "description": "Message for response to listing shared templates.",
      "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"
        },
        "sharedTemplateRevisions": {
          "description": "The list of shared templates.",
          "type": "array",
          "items": {
            "$ref": "SharedTemplateRevision"
          }
        }
      }
    },
    "ComponentParameters": {
      "id": "ComponentParameters",
      "description": "Information about the component level parameters for an application.",
      "type": "object",
      "properties": {
        "component": {
          "description": "Required. The name of the component parameter.",
          "type": "string"
        },
        "effectiveApplicationInfo": {
          "description": "Output only. The effective application associated with the component. This is the server set application field.",
          "readOnly": true,
          "$ref": "ComponentApplicationInfo"
        },
        "connectionsParameters": {
          "description": "Output only. ",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ConnectionParameters"
          }
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED"
          ],
          "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."
          ],
          "description": "Output only. Deployment state of the component.",
          "readOnly": true,
          "type": "string"
        },
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. A list of parameters associated with the component.",
          "type": "array"
        },
        "componentParameterSchema": {
          "description": "Output only. The component parameter schema, which includes possible parameter values.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentParameterSchema"
          }
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        }
      }
    },
    "ComponentParameterSchema": {
      "properties": {
        "defaultValue": {
          "description": "Output only. The default value of the parameter.",
          "readOnly": true,
          "type": "any"
        },
        "key": {
          "description": "Output only. The key of the parameter.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. The type of the parameter.",
          "readOnly": true,
          "type": "string"
        },
        "isRequired": {
          "description": "Output only. Whether the parameter is required.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "id": "ComponentParameterSchema",
      "description": "Component parameter schema, which contains a list of all component parameters.",
      "type": "object"
    },
    "Criticality": {
      "properties": {
        "type": {
          "enum": [
            "TYPE_UNSPECIFIED",
            "MISSION_CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ],
          "description": "Required. Criticality Type.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Mission critical service, application or workload.",
            "High impact.",
            "Medium impact.",
            "Low impact."
          ]
        },
        "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"
        },
        "missionCritical": {
          "description": "Optional. Indicates mission-critical Application, Service, or Workload. Deprecated: Please refer to type instead.",
          "deprecated": true,
          "type": "boolean"
        }
      },
      "id": "Criticality",
      "description": "Criticality of the Application, Service, or Workload",
      "type": "object"
    },
    "ImportIaCError": {
      "id": "ImportIaCError",
      "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 }",
      "type": "object",
      "properties": {
        "range": {
          "description": "Output only. The code portion where this error occurs.",
          "readOnly": true,
          "$ref": "CodeRange"
        },
        "resourceAddress": {
          "description": "Output only. The resource address of the error.",
          "readOnly": true,
          "type": "string"
        },
        "file": {
          "description": "Output only. The file where the error has occurred.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Output only. The description of the error.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "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."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "INVALID",
            "NOT_SUPPORTED"
          ],
          "description": "Output only. The type of error.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "TerraformUiOutputDisplay": {
      "properties": {
        "visibility": {
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ],
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ],
          "description": "Output only. Visibility of the output.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "TerraformUiOutputDisplay",
      "description": "Terraform blueprint UI output display.",
      "type": "object"
    },
    "SkippedDomain": {
      "id": "SkippedDomain",
      "description": "Domains skipped during the best practice assessment.",
      "type": "object",
      "properties": {
        "domain": {
          "description": "Output only. Details of the domain skipped.",
          "readOnly": true,
          "$ref": "Domain"
        },
        "skipReason": {
          "enum": [
            "REASON_UNSPECIFIED",
            "UNAVAILABLE",
            "FAILURE",
            "TIMEOUT"
          ],
          "enumDescriptions": [
            "No reason specified.",
            "Domain is unavailable.",
            "Domain assessment failed.",
            "Domain assessment timed out."
          ],
          "description": "Output only. Reason for skipping the domain from assessment.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "UpdatedTemplateRevision": {
      "properties": {
        "templateRevision": {
          "description": "Output only. The details of the updated template revision.",
          "readOnly": true,
          "type": "string"
        },
        "templateDisplayName": {
          "description": "Output only. The display name of the template. If the display name is not available, the template resource name is used.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time when the template was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      },
      "id": "UpdatedTemplateRevision",
      "description": "The updated template revision, which results in an outdated application.",
      "type": "object"
    },
    "ListApplicationTemplateSystemRevisionsResponse": {
      "properties": {
        "applicationTemplateSystemRevisions": {
          "description": "The list of application template system revisions.",
          "type": "array",
          "items": {
            "$ref": "ApplicationTemplateSystemRevision"
          }
        },
        "unreachable": {
          "description": "Unordered list. Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "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": "ListApplicationTemplateSystemRevisionsResponse",
      "description": "Message for response to listing application template system revisions.",
      "type": "object"
    },
    "TemplateSchema": {
      "id": "TemplateSchema",
      "description": "TemplateSchema provides the input variables lists and connection information.",
      "type": "object",
      "properties": {
        "variables": {
          "description": "Required. All defined variables for the Template",
          "type": "array",
          "items": {
            "$ref": "TemplateVariable"
          }
        }
      }
    },
    "TerraformInputConnections": {
      "id": "TerraformInputConnections",
      "description": "TerraformInputConnections",
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "Output only. Input path of the other template that can be connected to.",
          "readOnly": true,
          "type": "string"
        },
        "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": {
          "description": "Output only. Output variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "DeploymentGroupMetadata": {
      "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.",
      "type": "object",
      "properties": {
        "deploymentGroup": {
          "description": "Output only. The deployment group name. Format: projects/{project}/locations/{location}/deploymentGroup/{deployment_group}",
          "readOnly": true,
          "type": "string"
        },
        "deploymentMetadataMap": {
          "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}",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "DeploymentMetadata"
          }
        }
      }
    },
    "ExportApplicationTemplateIaCRequest": {
      "id": "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"
        }
      }
    },
    "TerraformBlueprintUiMetadata": {
      "properties": {
        "terraformUiInput": {
          "description": "Output only. Terraform UI inputs.",
          "readOnly": true,
          "$ref": "TerraformUiInput"
        },
        "terraformUiOutput": {
          "description": "Output only. Terraform UI outputs.",
          "readOnly": true,
          "$ref": "TerraformUiOutput"
        }
      },
      "id": "TerraformBlueprintUiMetadata",
      "description": "Terraform blueprint UI metadata.",
      "type": "object"
    },
    "IaCFile": {
      "properties": {
        "name": {
          "description": "Required. The name of the file.",
          "type": "string"
        },
        "content": {
          "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 the HCL content of the file.",
          "type": "string"
        }
      },
      "id": "IaCFile",
      "description": "IaCFile represents a single infrastructure as code file.",
      "type": "object"
    },
    "ConnectionSource": {
      "id": "ConnectionSource",
      "description": "Defines the source of a connection.",
      "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"
        }
      }
    },
    "ApplicationOutputParameters": {
      "id": "ApplicationOutputParameters",
      "description": "The application output parameters of the deployment.",
      "type": "object",
      "properties": {
        "helmApplicationOutputParameters": {
          "description": "Output only. Helm application output parameters.",
          "readOnly": true,
          "$ref": "HelmApplicationOutputParameters"
        }
      }
    },
    "TemplateRequirements": {
      "properties": {
        "roles": {
          "items": {
            "$ref": "TemplateRoles"
          },
          "description": "Required. All roles required for the component",
          "type": "array"
        },
        "providerVersions": {
          "items": {
            "$ref": "ProviderVersion"
          },
          "description": "Required. Required provider versions.",
          "type": "array"
        }
      },
      "id": "TemplateRequirements",
      "description": "TemplateRequirements defines the roles required and the associated services that need to be enabled to provision Template resources.",
      "type": "object"
    },
    "Operation": {
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "properties": {
        "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"
        },
        "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"
        },
        "response": {
          "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`.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "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.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      }
    },
    "DisplayVariableToggle": {
      "id": "DisplayVariableToggle",
      "description": "Display variable toggle.",
      "type": "object",
      "properties": {
        "variableValues": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The value of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "type": "array"
        },
        "variableType": {
          "enum": [
            "TOGGLE_VARIABLE_TYPE_UNSPECIFIED",
            "TOGGLE_VARIABLE_TYPE_BOOLEAN",
            "TOGGLE_VARIABLE_TYPE_STRING",
            "TOGGLE_VARIABLE_TYPE_INTEGER"
          ],
          "enumDescriptions": [
            "Default",
            "Boolean",
            "String",
            "Integer"
          ],
          "description": "Output only. The type of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "type": "string"
        },
        "variable": {
          "description": "Output only. The name of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "ContactInfo": {
      "properties": {
        "email": {
          "description": "Required. Email address of the contacts.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Contact's name. Can have a maximum length of 63 characters.",
          "type": "string"
        },
        "channel": {
          "description": "Optional. Communication channel of the contacts.",
          "$ref": "Channel"
        }
      },
      "id": "ContactInfo",
      "description": "Contact information of stakeholders.",
      "type": "object"
    },
    "TerraformError": {
      "properties": {
        "errorDescription": {
          "description": "A human-readable error description.",
          "type": "string"
        },
        "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.",
          "type": "integer",
          "format": "int32"
        },
        "error": {
          "description": "Output only. Original error response from underlying Google API, if available.",
          "readOnly": true,
          "$ref": "Status"
        }
      },
      "id": "TerraformError",
      "description": "Errors encountered during actuation using Terraform",
      "type": "object"
    },
    "ScoreCard": {
      "id": "ScoreCard",
      "description": "Score card associated with the report.",
      "type": "object",
      "properties": {
        "reportScore": {
          "format": "int32",
          "description": "Required. Calculated score of the report.",
          "type": "integer"
        },
        "minScoreRequired": {
          "description": "Optional. Minimum score required to pass assessment.",
          "type": "integer",
          "format": "int32"
        },
        "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"
        },
        "averageScore": {
          "description": "Optional. Average score for similar reports.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "IaCModule": {
      "properties": {
        "files": {
          "items": {
            "$ref": "IaCFile"
          },
          "description": "Optional. The files in the module.",
          "type": "array"
        }
      },
      "id": "IaCModule",
      "description": "IaCModule represents a single infrastructure as code module.",
      "type": "object"
    },
    "ListPoliciesResponse": {
      "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"
        },
        "policies": {
          "description": "A list of policies.",
          "type": "array",
          "items": {
            "$ref": "DesignCenterPolicy"
          }
        }
      },
      "id": "ListPoliciesResponse",
      "description": "Message for response to listing policies.",
      "type": "object"
    },
    "ListSharesResponse": {
      "id": "ListSharesResponse",
      "description": "Message for response to listing shares of a catalog.",
      "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"
        },
        "shares": {
          "description": "The list of shares.",
          "type": "array",
          "items": {
            "$ref": "Share"
          }
        }
      }
    },
    "RootModuleDependency": {
      "id": "RootModuleDependency",
      "description": "Root module dependency.",
      "type": "object",
      "properties": {
        "rootModuleId": {
          "description": "Identifier of the root module.",
          "type": "string"
        },
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Parameters associated with this dependency.",
          "type": "array"
        }
      }
    },
    "DesignCenterPolicy": {
      "properties": {
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "policyType": {
          "description": "Required. The policy type. Policy type will be used to determine the domain of the policy.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "Compliance framework policy."
          ],
          "enum": [
            "POLICY_TYPE_UNSPECIFIED",
            "COMPLIANCE_FRAMEWORK"
          ]
        },
        "applyConditions": {
          "description": "Optional. Conditions for applying the policy. Condition accepts AppTemplate parameters like criticality, environment only.",
          "type": "array",
          "items": {
            "$ref": "ApplyCondition"
          }
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The policy creation timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. The policy update timestamp.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The policy display name.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
          "type": "string"
        },
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The policy description.",
          "type": "string"
        }
      },
      "id": "DesignCenterPolicy",
      "description": "A Policy is a resource within an Application Template that refers to a Policy that is authored and managed outside of the ADC and attached to an Application Template.",
      "type": "object"
    },
    "ApplicationTemplateSystemRevision": {
      "properties": {
        "name": {
          "description": "Identifier. The application template system revision name. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}",
          "type": "string"
        },
        "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.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "annotations": {
          "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\" }",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "id": "ApplicationTemplateSystemRevision",
      "description": "Application template system revision resource.",
      "type": "object"
    },
    "TerraformUiInput": {
      "id": "TerraformUiInput",
      "description": "Terraform blueprint UI input.",
      "type": "object",
      "properties": {
        "terraformUiInputs": {
          "description": "Output only. Terraform UI inputs.",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          }
        }
      }
    },
    "ImportApplicationTemplateIaCRequest": {
      "id": "ImportApplicationTemplateIaCRequest",
      "description": "Request message for ImportApplicationTemplateIaC method.",
      "type": "object",
      "properties": {
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI of the terraform code.",
          "type": "string"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        },
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        },
        "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"
        }
      }
    },
    "TemplateUi": {
      "id": "TemplateUi",
      "description": "TemplateUi defines the UI related information for the Template.",
      "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"
        }
      }
    },
    "SetIamPolicyRequest": {
      "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": {
          "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\"`",
          "type": "string"
        }
      },
      "id": "SetIamPolicyRequest",
      "description": "Request message for `SetIamPolicy` method.",
      "type": "object"
    },
    "DeploymentAttemptMetadata": {
      "properties": {
        "errorDetail": {
          "description": "Human readable string that summarizes the deployment error issue.",
          "type": "string"
        },
        "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",
          "description": "The sequential number of the attempt (starting from 1).",
          "type": "integer"
        }
      },
      "id": "DeploymentAttemptMetadata",
      "description": "DeploymentAttemptMetadata represents a previous deployment attempt for an operation that failed due to a retryable error.",
      "type": "object"
    },
    "GitSource": {
      "id": "GitSource",
      "description": "Defines how to access a Git source.",
      "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"
        },
        "refTag": {
          "description": "Required. The reference tag of the git repo.",
          "type": "string"
        },
        "dir": {
          "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.",
          "type": "string"
        },
        "developerConnectConfig": {
          "description": "Optional. This config defines the location of a source through Developer Connect. Used to access private git repos.",
          "deprecated": true,
          "$ref": "DeveloperConnectConfig"
        }
      }
    },
    "AssetDetails": {
      "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": {
          "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).",
          "type": "string"
        }
      },
      "id": "AssetDetails",
      "description": "Details of a Cloud Asset Inventory asset that caused the finding.",
      "type": "object"
    }
  },
  "description": "Design and share deployable application architectures.",
  "revision": "20260408",
  "servicePath": "",
  "name": "designcenter",
  "discoveryVersion": "v1",
  "rootUrl": "https://designcenter.googleapis.com/",
  "ownerName": "Google",
  "version": "v1",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "list": {
              "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.",
              "path": "v1/{+name}/locations",
              "flatPath": "v1/projects/{projectsId}/locations",
              "parameters": {
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "type": "integer",
                  "location": "query",
                  "format": "int32"
                },
                "filter": {
                  "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).",
                  "type": "string",
                  "location": "query"
                },
                "extraLocationTypes": {
                  "location": "query",
                  "repeated": true,
                  "description": "Optional. Do not use this field. It is unsupported and is ignored unless explicitly documented otherwise. This is primarily for internal usage.",
                  "type": "string"
                },
                "pageToken": {
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "type": "string",
                  "location": "query"
                },
                "name": {
                  "required": true,
                  "description": "The resource that owns the locations collection, if applicable.",
                  "type": "string",
                  "pattern": "^projects/[^/]+$",
                  "location": "path"
                }
              },
              "id": "designcenter.projects.locations.list",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "ListLocationsResponse"
              }
            },
            "get": {
              "description": "Gets information about a location.",
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
              "path": "v1/{+name}",
              "parameters": {
                "name": {
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "description": "Resource name for the location.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "designcenter.projects.locations.get",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Location"
              }
            },
            "fetchFrameworks": {
              "description": "Fetches all frameworks for assessment report.",
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:fetchFrameworks",
              "path": "v1/{+parent}:fetchFrameworks",
              "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.",
                  "type": "string",
                  "location": "query"
                },
                "parent": {
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "required": true,
                  "description": "Required. The parent resource name. Format: projects/{project}/locations/{location}",
                  "type": "string"
                },
                "projects": {
                  "description": "Optional. Projects to fetch frameworks for. Format: projects/{project}",
                  "type": "string",
                  "location": "query",
                  "repeated": true
                },
                "filter": {
                  "location": "query",
                  "description": "Optional. Filter for frameworks list.",
                  "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.",
                  "type": "integer",
                  "location": "query",
                  "format": "int32"
                }
              },
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "designcenter.projects.locations.fetchFrameworks",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "FetchFrameworksResponse"
              }
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "list": {
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "id": "designcenter.projects.locations.operations.list",
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1/{+name}/operations",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
                  "parameters": {
                    "filter": {
                      "location": "query",
                      "description": "The standard list filter.",
                      "type": "string"
                    },
                    "pageSize": {
                      "location": "query",
                      "format": "int32",
                      "description": "The standard list page size.",
                      "type": "integer"
                    },
                    "name": {
                      "location": "path",
                      "description": "The name of the operation's parent resource.",
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "type": "string",
                      "location": "query"
                    },
                    "returnPartialSuccess": {
                      "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.",
                      "type": "boolean",
                      "location": "query"
                    }
                  },
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`."
                },
                "delete": {
                  "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`.",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be deleted.",
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path"
                    }
                  },
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "designcenter.projects.locations.operations.delete",
                  "httpMethod": "DELETE",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Empty"
                  }
                },
                "get": {
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameters": {
                    "name": {
                      "required": true,
                      "description": "The name of the operation resource.",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path"
                    }
                  },
                  "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.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "designcenter.projects.locations.operations.get",
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ]
                },
                "cancel": {
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "designcenter.projects.locations.operations.cancel",
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "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`.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "path": "v1/{+name}:cancel",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "description": "The name of the operation resource to be cancelled.",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$"
                    }
                  }
                }
              }
            },
            "spaces": {
              "methods": {
                "generateAssessmentReport": {
                  "parameterOrder": [
                    "spaceName"
                  ],
                  "request": {
                    "$ref": "GenerateAssessmentReportRequest"
                  },
                  "id": "designcenter.projects.locations.spaces.generateAssessmentReport",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Generate a best practice report for a given Terraform plan.",
                  "parameters": {
                    "spaceName": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true,
                      "description": "Required. The name of the space at which Generate Assessment Report is called. Format: projects/$project/locations/$location/spaces/$space",
                      "type": "string"
                    }
                  },
                  "path": "v1/{+spaceName}:generateAssessmentReport",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateAssessmentReport"
                },
                "testIamPermissions": {
                  "parameters": {
                    "resource": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true,
                      "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.",
                      "type": "string"
                    }
                  },
                  "path": "v1/{+resource}:testIamPermissions",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:testIamPermissions",
                  "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
                  "response": {
                    "$ref": "TestIamPermissionsResponse"
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "request": {
                    "$ref": "TestIamPermissionsRequest"
                  },
                  "id": "designcenter.projects.locations.spaces.testIamPermissions",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "patch": {
                  "response": {
                    "$ref": "Space"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "Space"
                  },
                  "httpMethod": "PATCH",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "designcenter.projects.locations.spaces.patch",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true,
                      "description": "Identifier. The space name.",
                      "type": "string",
                      "location": "path"
                    },
                    "updateMask": {
                      "location": "query",
                      "format": "google-fieldmask",
                      "description": "Optional. The fields to overwrite in the space update. If you don't provide a mask, all fields are overwritten.",
                      "type": "string"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "path": "v1/{+name}",
                  "description": "Updates a space."
                },
                "registerAppHubApplicationResources": {
                  "id": "designcenter.projects.locations.spaces.registerAppHubApplicationResources",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "RegisterAppHubApplicationResourcesRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Register deployed resources from terraform state file with App Hub without needing a space.",
                  "path": "v1/{+parent}/spaces:registerAppHubApplicationResources",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces:registerAppHubApplicationResources",
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "description": "Required. The parent location. Format: projects/{project}/locations/{location}",
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    }
                  }
                },
                "getIamPolicy": {
                  "response": {
                    "$ref": "Policy"
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "designcenter.projects.locations.spaces.getIamPolicy",
                  "parameters": {
                    "resource": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true,
                      "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.",
                      "type": "string",
                      "location": "path"
                    },
                    "options.requestedPolicyVersion": {
                      "location": "query",
                      "format": "int32",
                      "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"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:getIamPolicy",
                  "path": "v1/{+resource}:getIamPolicy",
                  "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set."
                },
                "list": {
                  "parameters": {
                    "pageToken": {
                      "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",
                      "location": "query"
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "description": "Required. The name of the parent resource, for which spaces are listed.",
                      "type": "string",
                      "location": "path"
                    },
                    "orderBy": {
                      "location": "query",
                      "description": "Optional. How the results are sorted.",
                      "type": "string"
                    },
                    "filter": {
                      "location": "query",
                      "description": "Optional. A filter that chooses which spaces to return.",
                      "type": "string"
                    },
                    "pageSize": {
                      "location": "query",
                      "format": "int32",
                      "description": "Optional. The maximum number of pages to return from this request. If unspecified, the value automatically reflects the number of results returned.",
                      "type": "integer"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces",
                  "path": "v1/{+parent}/spaces",
                  "description": "Lists spaces in a given project and location.",
                  "response": {
                    "$ref": "ListSpacesResponse"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "designcenter.projects.locations.spaces.list"
                },
                "delete": {
                  "description": "Deletes a space.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "path": "v1/{+name}",
                  "parameters": {
                    "name": {
                      "description": "Required. The space name.",
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path"
                    },
                    "force": {
                      "location": "query",
                      "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.",
                      "type": "boolean"
                    }
                  },
                  "httpMethod": "DELETE",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "designcenter.projects.locations.spaces.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Empty"
                  }
                },
                "setIamPolicy": {
                  "parameterOrder": [
                    "resource"
                  ],
                  "request": {
                    "$ref": "SetIamPolicyRequest"
                  },
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "designcenter.projects.locations.spaces.setIamPolicy",
                  "response": {
                    "$ref": "Policy"
                  },
                  "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
                  "parameters": {
                    "resource": {
                      "location": "path",
                      "required": true,
                      "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.",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:setIamPolicy",
                  "path": "v1/{+resource}:setIamPolicy"
                },
                "get": {
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "description": "Required. The space name.",
                      "type": "string",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "path": "v1/{+name}",
                  "description": "Gets details about a space.",
                  "response": {
                    "$ref": "Space"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "designcenter.projects.locations.spaces.get"
                },
                "create": {
                  "description": "Creates a space.",
                  "path": "v1/{+parent}/spaces",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces",
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "required": true,
                      "description": "Required. The parent in which to create a space.",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "spaceId": {
                      "description": "Required. The ID of the space to create.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "id": "designcenter.projects.locations.spaces.create",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "Space"
                  },
                  "response": {
                    "$ref": "Space"
                  }
                }
              },
              "resources": {
                "catalogs": {
                  "resources": {
                    "templates": {
                      "methods": {
                        "list": {
                          "response": {
                            "$ref": "ListCatalogTemplatesResponse"
                          },
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.list",
                          "parameterOrder": [
                            "parent"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "path": "v1/{+parent}/templates",
                          "parameters": {
                            "parent": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "required": true,
                              "description": "Required. The parent from which the catalog templates are listed in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                              "type": "string",
                              "location": "path"
                            },
                            "orderBy": {
                              "location": "query",
                              "description": "Optional. How the results should be sorted.",
                              "type": "string"
                            },
                            "pageSize": {
                              "location": "query",
                              "format": "int32",
                              "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"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses the catalog templates to return.",
                              "type": "string",
                              "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.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "description": "Lists catalog templates."
                        },
                        "delete": {
                          "httpMethod": "DELETE",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.delete",
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Operation"
                          },
                          "description": "Deletes a catalog template.",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "path": "v1/{+name}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "required": true,
                              "description": "Required. The catalog template name. Format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$"
                            },
                            "force": {
                              "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",
                              "location": "query"
                            }
                          }
                        },
                        "create": {
                          "parameters": {
                            "parent": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "required": true,
                              "description": "Required. The parent resource in which the catalog template is created.",
                              "type": "string"
                            },
                            "catalogTemplateId": {
                              "location": "query",
                              "description": "Required. The ID of the catalog template to create. The ID is appended to the catalog template's name.",
                              "type": "string"
                            }
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "path": "v1/{+parent}/templates",
                          "description": "Adds a template to a catalog.",
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "httpMethod": "POST",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.create"
                        },
                        "get": {
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.get",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "description": "Gets a catalog template.",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "required": true,
                              "description": "Required. The catalog template name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
                              "type": "string"
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}"
                        },
                        "patch": {
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "httpMethod": "PATCH",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.patch",
                          "parameters": {
                            "name": {
                              "required": true,
                              "description": "Identifier. The catalog template name in following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "location": "path"
                            },
                            "updateMask": {
                              "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.",
                              "type": "string",
                              "location": "query",
                              "format": "google-fieldmask"
                            }
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "path": "v1/{+name}",
                          "description": "Updates a catalog template resource."
                        }
                      },
                      "resources": {
                        "revisions": {
                          "methods": {
                            "create": {
                              "response": {
                                "$ref": "Operation"
                              },
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.create",
                              "httpMethod": "POST",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameterOrder": [
                                "parent"
                              ],
                              "request": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "path": "v1/{+parent}/revisions",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "parameters": {
                                "parent": {
                                  "required": true,
                                  "description": "Required. The parent in which the catalog template revisions request is created in following format: projects/$project/locations/$location/spaces/$space/templates/$template",
                                  "type": "string",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                                  "location": "path"
                                },
                                "catalogTemplateRevisionId": {
                                  "location": "query",
                                  "description": "Required. The ID of the template revision to create.",
                                  "type": "string"
                                }
                              },
                              "description": "Creates a template revision."
                            },
                            "get": {
                              "parameters": {
                                "name": {
                                  "description": "Required. The catalog template revisions name.",
                                  "type": "string",
                                  "required": true,
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "location": "path"
                                }
                              },
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "path": "v1/{+name}",
                              "description": "Gets details about a template revision.",
                              "response": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "httpMethod": "GET",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.get"
                            },
                            "list": {
                              "description": "Lists template revisions.",
                              "path": "v1/{+parent}/revisions",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "parameters": {
                                "parent": {
                                  "location": "path",
                                  "description": "Required. The parent resource from which a list of catalog template revisions is requested.",
                                  "type": "string",
                                  "required": true,
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$"
                                },
                                "orderBy": {
                                  "location": "query",
                                  "description": "Optional. How the results should be sorted.",
                                  "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.",
                                  "type": "integer",
                                  "location": "query",
                                  "format": "int32"
                                },
                                "filter": {
                                  "description": "Optional. A filter that chooses which catalog template revisions to return.",
                                  "type": "string",
                                  "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"
                                }
                              },
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.list",
                              "httpMethod": "GET",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameterOrder": [
                                "parent"
                              ],
                              "response": {
                                "$ref": "ListCatalogTemplateRevisionsResponse"
                              }
                            },
                            "delete": {
                              "response": {
                                "$ref": "Operation"
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.delete",
                              "httpMethod": "DELETE",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "name": {
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "description": "Required. The template revision name.",
                                  "type": "string",
                                  "required": true,
                                  "location": "path"
                                }
                              },
                              "path": "v1/{+name}",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "description": "Deletes a template revision."
                            }
                          }
                        }
                      }
                    },
                    "shares": {
                      "methods": {
                        "create": {
                          "path": "v1/{+parent}/shares",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "parameters": {
                            "parent": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "description": "Required. The parent resource in which shares are created.",
                              "type": "string",
                              "required": true,
                              "location": "path"
                            },
                            "shareId": {
                              "location": "query",
                              "description": "Required. The ID of the share to create.",
                              "type": "string"
                            }
                          },
                          "description": "Shares a catalog from one space to another space.",
                          "response": {
                            "$ref": "Operation"
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.create",
                          "httpMethod": "POST",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "Share"
                          }
                        },
                        "get": {
                          "description": "Get catalog share object for the space.",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "required": true,
                              "description": "Required. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
                              "type": "string"
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.get",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "Share"
                          }
                        },
                        "sync": {
                          "description": "Synchronizes a share and updates the destination workspace to reflect. reflect the most recent changes to the catalog.",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}:sync",
                          "path": "v1/{+name}:sync",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "required": true,
                              "description": "Required. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$"
                            }
                          },
                          "httpMethod": "POST",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.sync",
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "SyncShareRequest"
                          },
                          "response": {
                            "$ref": "Operation"
                          }
                        },
                        "list": {
                          "path": "v1/{+parent}/shares",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "parameters": {
                            "parent": {
                              "location": "path",
                              "description": "Required. The parent resource from which a list of shares is requested.",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            },
                            "orderBy": {
                              "location": "query",
                              "description": "Optional. How the results should be sorted.",
                              "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.",
                              "type": "string",
                              "location": "query"
                            },
                            "pageSize": {
                              "location": "query",
                              "format": "int32",
                              "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"
                            }
                          },
                          "description": "Lists catalog share objects for the space.",
                          "response": {
                            "$ref": "ListSharesResponse"
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.list",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "parent"
                          ]
                        },
                        "delete": {
                          "description": "Deletes a catalog share.",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "description": "Required. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
                              "type": "string",
                              "required": true
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.delete",
                          "httpMethod": "DELETE",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "Operation"
                          }
                        }
                      }
                    }
                  },
                  "methods": {
                    "list": {
                      "parameterOrder": [
                        "parent"
                      ],
                      "id": "designcenter.projects.locations.spaces.catalogs.list",
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ListCatalogsResponse"
                      },
                      "description": "Lists catalogs in a given space.",
                      "parameters": {
                        "pageToken": {
                          "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",
                          "location": "query"
                        },
                        "parent": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "required": true,
                          "description": "Required. The parent space from which catalogs are listed. Format: projects/$project/locations/$location/spaces/$space",
                          "type": "string",
                          "location": "path"
                        },
                        "orderBy": {
                          "location": "query",
                          "description": "Optional. How the results should be sorted.",
                          "type": "string"
                        },
                        "filter": {
                          "location": "query",
                          "description": "Optional. A filter that chooses which catalogs to return.",
                          "type": "string"
                        },
                        "pageSize": {
                          "location": "query",
                          "format": "int32",
                          "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"
                        }
                      },
                      "path": "v1/{+parent}/catalogs",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs"
                    },
                    "delete": {
                      "description": "Deletes a catalog.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "description": "Required. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                          "type": "string",
                          "required": true
                        },
                        "force": {
                          "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.",
                          "type": "boolean",
                          "location": "query"
                        }
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "path": "v1/{+name}",
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "DELETE",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.catalogs.delete",
                      "response": {
                        "$ref": "Operation"
                      }
                    },
                    "get": {
                      "id": "designcenter.projects.locations.spaces.catalogs.get",
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Catalog"
                      },
                      "description": "Gets details about a catalog.",
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "required": true,
                          "description": "Required. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                          "type": "string",
                          "location": "path"
                        }
                      }
                    },
                    "create": {
                      "parameters": {
                        "catalogId": {
                          "location": "query",
                          "description": "Required. The ID of the catalog to create.",
                          "type": "string"
                        },
                        "parent": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "required": true,
                          "description": "Required. The parent space in which a catalog is created in the following format: projects/$project/locations/$location/spaces/$space",
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "path": "v1/{+parent}/catalogs",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "description": "Creates a catalog.",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "Catalog"
                      },
                      "id": "designcenter.projects.locations.spaces.catalogs.create",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "patch": {
                      "id": "designcenter.projects.locations.spaces.catalogs.patch",
                      "httpMethod": "PATCH",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "Catalog"
                      },
                      "response": {
                        "$ref": "Catalog"
                      },
                      "description": "Updates a catalog.",
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "description": "Identifier. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                        },
                        "updateMask": {
                          "location": "query",
                          "format": "google-fieldmask",
                          "description": "Optional. The fields to overwrite in the catalog update. If you don't provide a mask, all fields are overwritten.",
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "applications": {
                  "methods": {
                    "generate": {
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "required": true,
                          "description": "Required. The name of the application.",
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "path": "v1/{+name}:generate",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generate",
                      "description": "Generates Terraform files for an application.",
                      "response": {
                        "$ref": "GenerateApplicationIaCResponse"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GenerateApplicationIaCRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.generate",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "fetchAssessmentReport": {
                      "response": {
                        "$ref": "FetchApplicationAssessmentReportResponse"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.fetchAssessmentReport",
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "description": "Required. The application name in the following format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path"
                        }
                      },
                      "path": "v1/{+name}:fetchAssessmentReport",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:fetchAssessmentReport",
                      "description": "Fetches the assessment report of a deployed application if present."
                    },
                    "preview": {
                      "description": "Previews deployment of an application.",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:preview",
                      "path": "v1/{+name}:preview",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The application name in the following format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "type": "string",
                          "required": true
                        }
                      },
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.preview",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "PreviewApplicationRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      }
                    },
                    "list": {
                      "id": "designcenter.projects.locations.spaces.applications.list",
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListApplicationsResponse"
                      },
                      "description": "Lists applications in a given space.",
                      "path": "v1/{+parent}/applications",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "parameters": {
                        "pageSize": {
                          "location": "query",
                          "format": "int32",
                          "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"
                        },
                        "filter": {
                          "location": "query",
                          "description": "Optional. A filter that chooses which applications to return.",
                          "type": "string"
                        },
                        "parent": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "required": true,
                          "description": "Required. The parent resource from which to request a list of applications.",
                          "type": "string",
                          "location": "path"
                        },
                        "orderBy": {
                          "location": "query",
                          "description": "Optional. How the results should be sorted.",
                          "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.",
                          "type": "string",
                          "location": "query"
                        }
                      }
                    },
                    "delete": {
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "required": true,
                          "description": "Required. The application name. Format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "type": "string"
                        },
                        "force": {
                          "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.",
                          "type": "boolean",
                          "location": "query"
                        }
                      },
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "description": "Deletes an application.",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.delete",
                      "httpMethod": "DELETE",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "create": {
                      "response": {
                        "$ref": "Application"
                      },
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.create",
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "Application"
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "path": "v1/{+parent}/applications",
                      "parameters": {
                        "parent": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "description": "Required. The parent resource in which to create the application. Format: projects/$project/locations/$location/spaces/$space",
                          "type": "string",
                          "required": true,
                          "location": "path"
                        },
                        "applicationId": {
                          "description": "Required. The ID of the application to create.",
                          "type": "string",
                          "location": "query"
                        }
                      },
                      "description": "Creates an application."
                    },
                    "get": {
                      "parameters": {
                        "name": {
                          "location": "path",
                          "description": "Required. The application name. Format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$"
                        }
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "path": "v1/{+name}",
                      "description": "Gets details about an application.",
                      "response": {
                        "$ref": "Application"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.get"
                    },
                    "importIaC": {
                      "parameters": {
                        "name": {
                          "location": "path",
                          "description": "Required. The name of the application.",
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$"
                        }
                      },
                      "path": "v1/{+name}:importIaC",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:importIaC",
                      "description": "Imports IaC for an application resource.",
                      "response": {
                        "$ref": "ImportApplicationIaCResponse"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ImportApplicationIaCRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.importIaC",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "patch": {
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "Application"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.patch",
                      "httpMethod": "PATCH",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Application"
                      },
                      "description": "Updates an application.",
                      "parameters": {
                        "name": {
                          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path"
                        },
                        "updateMask": {
                          "description": "Optional. The fields to overwrite in the application update. If you don't provide a mask, all fields are overwritten.",
                          "type": "string",
                          "location": "query",
                          "format": "google-fieldmask"
                        }
                      },
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}"
                    },
                    "deploy": {
                      "description": "Deploys an application.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The application name. Format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "type": "string",
                          "required": true
                        }
                      },
                      "path": "v1/{+name}:deploy",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:deploy",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "DeployApplicationRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.deploy",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Operation"
                      }
                    }
                  }
                },
                "applicationTemplates": {
                  "resources": {
                    "components": {
                      "resources": {
                        "connections": {
                          "methods": {
                            "list": {
                              "response": {
                                "$ref": "ListConnectionsResponse"
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.list",
                              "httpMethod": "GET",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "parent": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                                  "required": true,
                                  "description": "Required. The parent resource from which to request a list of connections.",
                                  "type": "string"
                                },
                                "orderBy": {
                                  "location": "query",
                                  "description": "Optional. How the results should be sorted.",
                                  "type": "string"
                                },
                                "pageSize": {
                                  "location": "query",
                                  "format": "int32",
                                  "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"
                                },
                                "filter": {
                                  "location": "query",
                                  "description": "Optional. A filter that chooses which connections to return.",
                                  "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"
                                }
                              },
                              "path": "v1/{+parent}/connections",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "description": "Lists connections in an application template."
                            },
                            "delete": {
                              "response": {
                                "$ref": "Empty"
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "httpMethod": "DELETE",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.delete",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "required": true,
                                  "description": "Required. The connection name.",
                                  "type": "string",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$"
                                }
                              },
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "path": "v1/{+name}",
                              "description": "Deletes a connection."
                            },
                            "get": {
                              "description": "Gets details about a connection.",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "required": true,
                                  "description": "Required. Name of the resource",
                                  "type": "string",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$"
                                }
                              },
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "path": "v1/{+name}",
                              "parameterOrder": [
                                "name"
                              ],
                              "httpMethod": "GET",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.get",
                              "response": {
                                "$ref": "Connection"
                              }
                            },
                            "create": {
                              "description": "Creates a connection.",
                              "parameters": {
                                "connectionId": {
                                  "location": "query",
                                  "description": "Required. The ID of the connection to create.",
                                  "type": "string"
                                },
                                "parent": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                                  "description": "Required. The parent resource in which to create a connection.",
                                  "type": "string",
                                  "required": true
                                }
                              },
                              "path": "v1/{+parent}/connections",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "parameterOrder": [
                                "parent"
                              ],
                              "request": {
                                "$ref": "Connection"
                              },
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.create",
                              "httpMethod": "POST",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "response": {
                                "$ref": "Connection"
                              }
                            },
                            "patch": {
                              "description": "Updates a connection.",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "description": "Identifier. The connection name.",
                                  "type": "string",
                                  "required": true
                                },
                                "updateMask": {
                                  "location": "query",
                                  "format": "google-fieldmask",
                                  "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"
                                }
                              },
                              "path": "v1/{+name}",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "parameterOrder": [
                                "name"
                              ],
                              "request": {
                                "$ref": "Connection"
                              },
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.patch",
                              "httpMethod": "PATCH",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "response": {
                                "$ref": "Connection"
                              }
                            }
                          }
                        }
                      },
                      "methods": {
                        "list": {
                          "parameters": {
                            "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": {
                              "location": "query",
                              "description": "Optional. A filter that chooses which components to return.",
                              "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.",
                              "type": "integer",
                              "location": "query",
                              "format": "int32"
                            },
                            "parent": {
                              "required": true,
                              "description": "Required. The parent resource from which the list of components is requested.",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "path": "v1/{+parent}/components",
                          "description": "Lists components in an application template.",
                          "response": {
                            "$ref": "ListComponentsResponse"
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.list"
                        },
                        "delete": {
                          "response": {
                            "$ref": "Empty"
                          },
                          "httpMethod": "DELETE",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.delete",
                          "parameterOrder": [
                            "name"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "path": "v1/{+name}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "required": true,
                              "description": "Required. The component name.",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$"
                            },
                            "force": {
                              "location": "query",
                              "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.",
                              "type": "boolean"
                            }
                          },
                          "description": "Deletes a component."
                        },
                        "get": {
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "description": "Required. The component name.",
                              "type": "string",
                              "required": true
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "description": "Gets details about a Component.",
                          "response": {
                            "$ref": "Component"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.get",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "create": {
                          "description": "Creates a component.",
                          "parameters": {
                            "parent": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "required": true,
                              "description": "Required. The parent resource in which to create the component.",
                              "type": "string",
                              "location": "path"
                            },
                            "componentId": {
                              "description": "Required. The ID of the component to create.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "path": "v1/{+parent}/components",
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "Component"
                          },
                          "httpMethod": "POST",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.create",
                          "response": {
                            "$ref": "Component"
                          }
                        },
                        "patch": {
                          "response": {
                            "$ref": "Component"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.patch",
                          "httpMethod": "PATCH",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "Component"
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "description": "Identifier. The component name.",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$"
                            },
                            "updateMask": {
                              "description": "Optional. The fields to overwrite in the component update. If you don't provide a mask, all fields are overwritten.",
                              "type": "string",
                              "location": "query",
                              "format": "google-fieldmask"
                            }
                          },
                          "description": "Updates a component."
                        }
                      }
                    },
                    "policies": {
                      "methods": {
                        "list": {
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.list",
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListPoliciesResponse"
                          },
                          "description": "List policies for an application template.",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "path": "v1/{+parent}/policies",
                          "parameters": {
                            "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"
                            },
                            "parent": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "required": true,
                              "description": "Required. The parent application template from which policies are listed in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate",
                              "type": "string",
                              "location": "path"
                            },
                            "orderBy": {
                              "location": "query",
                              "description": "Optional. How the results should be sorted.",
                              "type": "string"
                            },
                            "pageSize": {
                              "location": "query",
                              "format": "int32",
                              "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"
                            },
                            "filter": {
                              "location": "query",
                              "description": "Optional. A filter that chooses which policies to return.",
                              "type": "string"
                            }
                          }
                        },
                        "delete": {
                          "response": {
                            "$ref": "Empty"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.delete",
                          "httpMethod": "DELETE",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "description": "Required. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
                              "type": "string",
                              "required": true,
                              "location": "path"
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "description": "Deletes a policy."
                        },
                        "get": {
                          "description": "Policy related APIs. Get a policy for an application template.",
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "required": true,
                              "description": "Required. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.get",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          }
                        },
                        "create": {
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.create",
                          "httpMethod": "POST",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "parent": {
                              "location": "path",
                              "required": true,
                              "description": "Required. The parent resource in which to create the policy in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                            },
                            "policyId": {
                              "description": "Required. The ID of the policy to create.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "path": "v1/{+parent}/policies",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "description": "Creates a policy for an application template."
                        },
                        "patch": {
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "path": "v1/{+name}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "description": "Identifier. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$"
                            },
                            "updateMask": {
                              "location": "query",
                              "format": "google-fieldmask",
                              "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"
                            }
                          },
                          "description": "Updates a policy.",
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "httpMethod": "PATCH",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.patch",
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          }
                        }
                      }
                    },
                    "systemRevisions": {
                      "methods": {
                        "get": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.get",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "ApplicationTemplateSystemRevision"
                          },
                          "description": "Gets the given application template system revision.",
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions/{systemRevisionsId}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "required": true,
                              "description": "Required. The name of the ApplicationTemplateSystemRevision to retrieve. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/systemRevisions/[^/]+$"
                            }
                          }
                        },
                        "list": {
                          "path": "v1/{+parent}/systemRevisions",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions",
                          "parameters": {
                            "parent": {
                              "location": "path",
                              "required": true,
                              "description": "Required. The parent Application Template from which to list the system revisions. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                            },
                            "pageSize": {
                              "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.",
                              "type": "integer",
                              "location": "query",
                              "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": {
                              "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.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "description": "Lists application template system revisions in a given application template.",
                          "response": {
                            "$ref": "ListApplicationTemplateSystemRevisionsResponse"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.list",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "parent"
                          ]
                        }
                      }
                    },
                    "revisions": {
                      "methods": {
                        "get": {
                          "response": {
                            "$ref": "ApplicationTemplateRevision"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.get",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "description": "Required. The application template revision name.",
                              "type": "string",
                              "required": true
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "description": "Gets details about an application template revision."
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.list",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListApplicationTemplateRevisionsResponse"
                          },
                          "description": "Lists application template revisions in a given application template.",
                          "path": "v1/{+parent}/revisions",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions",
                          "parameters": {
                            "filter": {
                              "description": "Optional. A filter that chooses which application template revisions to return.",
                              "type": "string",
                              "location": "query"
                            },
                            "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.",
                              "type": "integer",
                              "location": "query",
                              "format": "int32"
                            },
                            "parent": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "description": "Required. The parent from which to list application template revisions.",
                              "type": "string",
                              "required": true
                            },
                            "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"
                            }
                          }
                        },
                        "delete": {
                          "description": "Deletes an application template revision.",
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "parameters": {
                            "name": {
                              "description": "Required. The application template revision name.",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path"
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.delete",
                          "httpMethod": "DELETE",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Empty"
                          }
                        },
                        "generate": {
                          "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.",
                          "path": "v1/{+name}:generate",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:generate",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "required": true,
                              "description": "Required. The name of the application template revision.",
                              "type": "string"
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.generate",
                          "httpMethod": "POST",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCRequest"
                          },
                          "response": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCResponse"
                          }
                        },
                        "export": {
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "description": "Required. The name of the application template revision.",
                              "type": "string",
                              "required": true
                            }
                          },
                          "path": "v1/{+name}:export",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:export",
                          "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.",
                          "response": {
                            "$ref": "Operation"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "ExportApplicationTemplateRevisionIaCRequest"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.export",
                          "httpMethod": "POST",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        }
                      }
                    }
                  },
                  "methods": {
                    "import": {
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "description": "Required. The name of the application template.",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:import",
                      "path": "v1/{+name}:import",
                      "description": "Imports to an existing application template from a given shared template.",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ImportApplicationTemplateRequest"
                      },
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.import"
                    },
                    "export": {
                      "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.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "required": true,
                          "description": "Required. The name of the application template.",
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}:export",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:export",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ExportApplicationTemplateIaCRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.export",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Operation"
                      }
                    },
                    "generate": {
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generate",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GenerateApplicationTemplateIaCRequest"
                      },
                      "response": {
                        "$ref": "GenerateApplicationTemplateIaCResponse"
                      },
                      "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.",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generate",
                      "path": "v1/{+name}:generate",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "description": "Required. The name of the application template.",
                          "type": "string",
                          "required": true,
                          "location": "path"
                        }
                      }
                    },
                    "commit": {
                      "description": "Commits an application template to create a new revision.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "required": true,
                          "description": "Required. The name of the application template.",
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}:commit",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:commit",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "CommitApplicationTemplateRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.commit",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ApplicationTemplateRevision"
                      }
                    },
                    "list": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.list",
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListApplicationTemplatesResponse"
                      },
                      "description": "Lists application templates in a given space.",
                      "path": "v1/{+parent}/applicationTemplates",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "parameters": {
                        "parent": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "description": "Required. The parent resource from which to list application templates.",
                          "type": "string",
                          "required": true
                        },
                        "orderBy": {
                          "location": "query",
                          "description": "Optional. How the results should be sorted.",
                          "type": "string"
                        },
                        "pageSize": {
                          "location": "query",
                          "format": "int32",
                          "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"
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which shared template revisions to return.",
                          "type": "string",
                          "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.",
                          "type": "string",
                          "location": "query"
                        }
                      }
                    },
                    "delete": {
                      "response": {
                        "$ref": "Empty"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.delete",
                      "httpMethod": "DELETE",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "parameters": {
                        "name": {
                          "required": true,
                          "description": "Required. The application template name.",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path"
                        },
                        "force": {
                          "location": "query",
                          "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.",
                          "type": "boolean"
                        }
                      },
                      "description": "Deletes an application template."
                    },
                    "get": {
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.get",
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "path": "v1/{+name}",
                      "parameters": {
                        "name": {
                          "required": true,
                          "description": "Required. The application template name.",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path"
                        }
                      },
                      "description": "Gets details about an application template."
                    },
                    "create": {
                      "description": "Creates an application template.",
                      "parameters": {
                        "parent": {
                          "required": true,
                          "description": "Required. The parent resource in which to create the application template.",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path"
                        },
                        "applicationTemplateId": {
                          "description": "Required. The ID of the application template to create.",
                          "type": "string",
                          "location": "query"
                        }
                      },
                      "path": "v1/{+parent}/applicationTemplates",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.create",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ApplicationTemplate"
                      }
                    },
                    "generateAssessmentReport": {
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GenerateApplicationTemplateAssessmentReportRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generateAssessmentReport",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "description": "Generate Assessment Reports of an application template.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "description": "Required. The application template name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "path": "v1/{+name}:generateAssessmentReport",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generateAssessmentReport"
                    },
                    "importIaC": {
                      "description": "Imports IaC for an application template.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "description": "Required. The name of the application template.",
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:importIaC",
                      "path": "v1/{+name}:importIaC",
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ImportApplicationTemplateIaCRequest"
                      },
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.importIaC",
                      "response": {
                        "$ref": "ImportApplicationTemplateIaCResponse"
                      }
                    },
                    "patch": {
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.patch",
                      "httpMethod": "PATCH",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "description": "Identifier. Application template name.",
                          "type": "string",
                          "required": true
                        },
                        "updateMask": {
                          "location": "query",
                          "format": "google-fieldmask",
                          "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"
                        }
                      },
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "description": "Updates an application template."
                    }
                  }
                },
                "sharedTemplates": {
                  "methods": {
                    "list": {
                      "response": {
                        "$ref": "ListSharedTemplatesResponse"
                      },
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.list",
                      "parameterOrder": [
                        "parent"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates",
                      "path": "v1/{+parent}/sharedTemplates",
                      "parameters": {
                        "parent": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "description": "Required. The parent space for which shared templates are listed in the following format: projects/$project/locations/$location/spaces/$space",
                          "type": "string",
                          "required": true,
                          "location": "path"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "type": "string",
                          "location": "query"
                        },
                        "filter": {
                          "location": "query",
                          "description": "Optional. A filter that chooses which shared templates to return.",
                          "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.",
                          "type": "integer",
                          "location": "query",
                          "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"
                        }
                      },
                      "description": "Lists shared templates in a given space."
                    },
                    "get": {
                      "description": "Gets details about a shared template.",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "description": "Required. The shared template name. Format: projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate",
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$"
                        }
                      },
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.get",
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "SharedTemplate"
                      }
                    }
                  },
                  "resources": {
                    "revisions": {
                      "methods": {
                        "get": {
                          "description": "Gets details about a shared template revision.",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "description": "Required. The shared template revision name, in the following format: projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate/revisions/$revision",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+/revisions/[^/]+$"
                            }
                          },
                          "path": "v1/{+name}",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions/{revisionsId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.get",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "SharedTemplateRevision"
                          }
                        },
                        "list": {
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.list",
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListSharedTemplateRevisionsResponse"
                          },
                          "description": "Lists shared template revisions in a given space.",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions",
                          "path": "v1/{+parent}/revisions",
                          "parameters": {
                            "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"
                            },
                            "parent": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$",
                              "description": "Required. The parent resource from which to list shared template revisions, in the following format: projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate",
                              "type": "string",
                              "required": true
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "type": "string",
                              "location": "query"
                            },
                            "pageSize": {
                              "location": "query",
                              "format": "int32",
                              "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"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which shared template revisions to return.",
                              "type": "string",
                              "location": "query"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "id": "designcenter:v1",
  "documentationLink": "http://cloud.google.com/application-design-center/docs",
  "version_module": true,
  "batchPath": "batch",
  "title": "Design Center API",
  "protocol": "rest",
  "baseUrl": "https://designcenter.googleapis.com/",
  "ownerDomain": "google.com",
  "mtlsRootUrl": "https://designcenter.mtls.googleapis.com/",
  "canonicalName": "Application Design Center",
  "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."
        }
      }
    }
  }
}
