{
  "schemas": {
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Operation"
          }
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "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"
          }
        }
      }
    },
    "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"
        },
        "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."
          }
        },
        "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."
          }
        }
      }
    },
    "Status": {
      "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",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        }
      }
    },
    "Empty": {
      "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",
      "properties": {}
    },
    "CancelOperationRequest": {
      "id": "CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation.",
      "type": "object",
      "properties": {}
    },
    "Space": {
      "id": "Space",
      "description": "Space is a top level resource for managing teams building applications through Application Design Center.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The space name.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Display name for the space.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Description for the space.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. Space creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. Space update timestamp",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "enableGcpSharedTemplates": {
          "description": "Optional. Flag to enable Google opinionated shared templates.",
          "type": "boolean"
        },
        "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"
        },
        "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"
          }
        }
      }
    },
    "ListSpacesResponse": {
      "id": "ListSpacesResponse",
      "description": "Results returned from projects.locations.spaces.list.",
      "type": "object",
      "properties": {
        "spaces": {
          "description": "A list of spaces.",
          "type": "array",
          "items": {
            "$ref": "Space"
          }
        },
        "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"
        },
        "unreachable": {
          "description": "Unordered list. Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ApplicationTemplate": {
      "id": "ApplicationTemplate",
      "description": "Application template resource.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. Application template name.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Application template display name.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Application template description.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. Application template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. Application template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "applicationParameters": {
          "description": "Optional. Parameters to apply to all components in an application. You can specify projectID and region.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "iacFormat": {
          "description": "Output only. The IaC format of the application template.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "serializedApplicationTemplate": {
          "description": "Output only. The serialized application template.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "latestRevision": {
          "description": "Output only. The latest application template revision.",
          "readOnly": true,
          "type": "string"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate was last successfully exported.",
          "readOnly": true,
          "$ref": "ArtifactLocation"
        },
        "compositionType": {
          "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."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ]
        },
        "rootInputVariables": {
          "description": "Optional. Root level input variables of the application template.",
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          }
        },
        "rootOutputVariables": {
          "description": "Optional. Root level output variables of the application template.",
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          }
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "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"
        }
      }
    },
    "Parameter": {
      "id": "Parameter",
      "description": "Parameter resource.",
      "type": "object",
      "properties": {
        "key": {
          "description": "Required. The key of the parameter.",
          "type": "string"
        },
        "value": {
          "description": "Optional. The value of the parameter.",
          "type": "any"
        }
      }
    },
    "SerializedApplicationTemplate": {
      "id": "SerializedApplicationTemplate",
      "description": "Serialized application template.",
      "type": "object",
      "properties": {
        "uri": {
          "description": "Optional. The application template URI.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The application template display name.",
          "type": "string"
        },
        "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"
          }
        },
        "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"
          ]
        },
        "components": {
          "description": "Optional. The application template components.",
          "type": "array",
          "items": {
            "$ref": "SerializedComponent"
          }
        },
        "apphubApplicationParameters": {
          "description": "Optional. The App Hub application parameters.",
          "$ref": "AppHubApplicationParameters"
        },
        "hasGlobalResource": {
          "description": "Output only. Whether the application template is compatible with regional scope.",
          "readOnly": true,
          "type": "boolean"
        },
        "compositionType": {
          "description": "Output only. The composition type of the applicationTemplate: STANDARD OR COMPOSITE.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "ApplicationCompositionType is STANDARD. The applicationTemplate or application is composed of components only of type service/workload/asset and has a single root module in terraform code.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ]
        },
        "rootInputVariables": {
          "description": "Output only. Root level input variables of the application template.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          }
        },
        "rootOutputVariables": {
          "description": "Output only. Root level output variables of the application template.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          }
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        }
      }
    },
    "SerializedComponent": {
      "id": "SerializedComponent",
      "description": "Serialized component.",
      "type": "object",
      "properties": {
        "uri": {
          "description": "Optional. The component URI.",
          "type": "string"
        },
        "sharedTemplateRevisionUri": {
          "description": "Optional. The shared template used to generate the component.",
          "type": "string"
        },
        "parameters": {
          "description": "Optional. The component parameters.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "connections": {
          "description": "Optional. The component connections.",
          "type": "array",
          "items": {
            "$ref": "SerializedConnection"
          }
        },
        "roles": {
          "description": "Optional. IAM roles required by the service account to deploy the component.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "apis": {
          "description": "Optional. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        },
        "connectionsParameters": {
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ConnectionParameters"
          }
        },
        "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"
        }
      }
    },
    "SerializedConnection": {
      "id": "SerializedConnection",
      "description": "Serialized connection.",
      "type": "object",
      "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": {
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "ComponentParameterSchema": {
      "id": "ComponentParameterSchema",
      "description": "Component parameter schema, which contains a list of all component parameters.",
      "type": "object",
      "properties": {
        "key": {
          "description": "Output only. The key of the parameter.",
          "readOnly": true,
          "type": "string"
        },
        "defaultValue": {
          "description": "Output only. The default value of the parameter.",
          "readOnly": true,
          "type": "any"
        },
        "isRequired": {
          "description": "Output only. Whether the parameter is required.",
          "readOnly": true,
          "type": "boolean"
        },
        "type": {
          "description": "Output only. The type of the parameter.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "ComponentApplicationInfo": {
      "id": "ComponentApplicationInfo",
      "description": "This captures the apphub application details associated with the component.",
      "type": "object",
      "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"
        },
        "displayName": {
          "description": "Optional. Display name for the application. The number of characters should be less than 64 characters.",
          "type": "string"
        },
        "scope": {
          "description": "Optional. Scope of apphub application.",
          "$ref": "Scope"
        },
        "attributes": {
          "description": "Optional. Attributes of apphub application.",
          "$ref": "Attributes"
        },
        "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"
        }
      }
    },
    "Scope": {
      "id": "Scope",
      "description": "Scope of an application.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Required. Scope Type.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Regional type.",
            "Global type."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "REGIONAL",
            "GLOBAL"
          ]
        }
      }
    },
    "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"
          }
        },
        "operatorOwners": {
          "description": "Optional. Operator team that ensures runtime and operations.",
          "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"
          }
        }
      }
    },
    "Criticality": {
      "id": "Criticality",
      "description": "Criticality of the Application, Service, or Workload",
      "type": "object",
      "properties": {
        "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"
        },
        "type": {
          "description": "Required. Criticality Type.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Mission critical service, application or workload.",
            "High impact.",
            "Medium impact.",
            "Low impact."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "MISSION_CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ]
        }
      }
    },
    "Environment": {
      "id": "Environment",
      "description": "Environment of the Application, Service, or Workload",
      "type": "object",
      "properties": {
        "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"
        },
        "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"
          ]
        }
      }
    },
    "ContactInfo": {
      "id": "ContactInfo",
      "description": "Contact information of stakeholders.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. Contact's name. Can have a maximum length of 63 characters.",
          "type": "string"
        },
        "email": {
          "description": "Required. Email address of the contacts.",
          "type": "string"
        },
        "channel": {
          "description": "Optional. Communication channel of the contacts.",
          "$ref": "Channel"
        }
      }
    },
    "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"
        }
      }
    },
    "AppHubApplicationParameters": {
      "id": "AppHubApplicationParameters",
      "description": "App Hub application parameters.",
      "type": "object",
      "properties": {
        "applicationId": {
          "description": "Optional. The App Hub application ID.",
          "type": "string"
        },
        "scope": {
          "description": "Optional. The App Hub application scope.",
          "$ref": "Scope"
        },
        "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"
        },
        "hostProjectId": {
          "description": "Optional. The host project ID where the App Hub application is created.",
          "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"
        }
      }
    },
    "SaaSRuntimeContext": {
      "id": "SaaSRuntimeContext",
      "description": "SaaS runtime context.",
      "type": "object",
      "properties": {
        "saasNames": {
          "description": "Optional. The SaaS names. Format for each SaaS: projects/{project}/locations/{location}/saas/{saas}",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "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"
        }
      }
    },
    "DeveloperConnectExportConfig": {
      "id": "DeveloperConnectExportConfig",
      "description": "Through Developer Connect, defines a location where content such as Infrastructure as Code (IaC) is stored.",
      "type": "object",
      "properties": {
        "developerConnectRepoUri": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.",
          "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"
        },
        "dir": {
          "description": "Required. Directory, relative to the source repo, where content such as Infrastructure as Code (IaC) will be stored. This must be a relative path.To specify the root directory, use '/'. If the path or any subdirectories do not exist, they will be created.",
          "type": "string"
        },
        "commitSha": {
          "description": "Output only. The SHA of the Git commit that contains the exported content such as Infrastructure as Code (IaC).",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "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"
          }
        },
        "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"
          }
        }
      }
    },
    "ImportApplicationTemplateRequest": {
      "id": "ImportApplicationTemplateRequest",
      "description": "Request message for ImportApplicationTemplate method.",
      "type": "object",
      "properties": {
        "applicationTemplateRevisionUri": {
          "description": "Optional. The source URI for application template revision.",
          "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"
        },
        "applicationTemplateSystemRevision": {
          "description": "Optional. The system revision to be imported. Used when user tries to Restore (rev X) or perform Undo/Redo operations.",
          "type": "string"
        },
        "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"
          }
        }
      }
    },
    "CommitApplicationTemplateRequest": {
      "id": "CommitApplicationTemplateRequest",
      "description": "Request message for CommitApplicationTemplate method.",
      "type": "object",
      "properties": {}
    },
    "ApplicationTemplateRevision": {
      "id": "ApplicationTemplateRevision",
      "description": "Application template revision resource.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The application template revision name.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The application template revision creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "snapshot": {
          "description": "Output only. The serialized application template.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate Revision was last successfully exported.",
          "readOnly": true,
          "$ref": "ArtifactLocation"
        }
      }
    },
    "GenerateApplicationTemplateIaCRequest": {
      "id": "GenerateApplicationTemplateIaCRequest",
      "description": "Request message for GenerateApplicationTemplateIaC 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"
          ]
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI to write the generated IaC to. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        }
      }
    },
    "GenerateApplicationTemplateIaCResponse": {
      "id": "GenerateApplicationTemplateIaCResponse",
      "description": "Response message for GenerateApplicationTemplateIaC method.",
      "type": "object",
      "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"
        }
      }
    },
    "RootModulesMetadata": {
      "id": "RootModulesMetadata",
      "description": "Root modules metadata.",
      "type": "object",
      "properties": {
        "rootModules": {
          "description": "List of terraform root modules.",
          "type": "array",
          "items": {
            "$ref": "RootModule"
          }
        }
      }
    },
    "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"
        },
        "components": {
          "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",
          "items": {
            "type": "string"
          }
        },
        "dependencies": {
          "description": "Dependencies of this root module. The dependency graph of root modules must be acyclic.",
          "type": "array",
          "items": {
            "$ref": "RootModuleDependency"
          }
        },
        "inputVariables": {
          "description": "List of input variables of this root module.",
          "type": "array",
          "items": {
            "$ref": "RootInputVariable"
          }
        },
        "outputVariables": {
          "description": "List of output variables of this root module.",
          "type": "array",
          "items": {
            "$ref": "RootOutputVariable"
          }
        }
      }
    },
    "RootModuleDependency": {
      "id": "RootModuleDependency",
      "description": "Root module dependency.",
      "type": "object",
      "properties": {
        "rootModuleId": {
          "description": "Identifier of the root module.",
          "type": "string"
        },
        "parameters": {
          "description": "Parameters associated with this dependency.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "RootInputVariable": {
      "id": "RootInputVariable",
      "description": "Input variable of a root module.",
      "type": "object",
      "properties": {
        "variable": {
          "description": "Name of the input variable.",
          "type": "string"
        },
        "variableType": {
          "description": "Type of the input variable.",
          "type": "string"
        },
        "value": {
          "description": "Value for the input variable.",
          "type": "any"
        },
        "defaultValue": {
          "description": "Default value of the input variable.",
          "type": "any"
        }
      }
    },
    "RootOutputVariable": {
      "id": "RootOutputVariable",
      "description": "Output variable of a root module.",
      "type": "object",
      "properties": {
        "variable": {
          "description": "Name of the output variable.",
          "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"
        }
      }
    },
    "GenerateApplicationTemplateRevisionIaCResponse": {
      "id": "GenerateApplicationTemplateRevisionIaCResponse",
      "description": "Response message for GenerateApplicationTemplateRevisionIaC method.",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template revision.",
          "$ref": "RootModulesMetadata"
        }
      }
    },
    "Component": {
      "id": "Component",
      "description": "Component resource.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The component name.",
          "type": "string"
        },
        "sharedTemplateRevisionUri": {
          "description": "Required. Immutable. The shared template used to generate the component.",
          "type": "string"
        },
        "parameters": {
          "description": "Optional. The component parameters.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "createTime": {
          "description": "Output only. ",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The component update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account to deploy the component.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "apis": {
          "description": "Output only. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        },
        "connectionsParameters": {
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ConnectionParameters"
          }
        },
        "componentParameterSchema": {
          "description": "Output only. The component parameter schema, which includes possible parameter values. values.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentParameterSchema"
          }
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        }
      }
    },
    "ListComponentsResponse": {
      "id": "ListComponentsResponse",
      "description": "Message for response to listing components.",
      "type": "object",
      "properties": {
        "components": {
          "description": "The list of components.",
          "type": "array",
          "items": {
            "$ref": "Component"
          }
        },
        "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"
          }
        }
      }
    },
    "Connection": {
      "id": "Connection",
      "description": "Connection resource.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The connection name.",
          "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"
        },
        "createTime": {
          "description": "Output only. The connection creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The connection update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "destinationComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "ListConnectionsResponse": {
      "id": "ListConnectionsResponse",
      "description": "Message for response to listing connections.",
      "type": "object",
      "properties": {
        "connections": {
          "description": "The list of connections.",
          "type": "array",
          "items": {
            "$ref": "Connection"
          }
        },
        "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"
          }
        }
      }
    },
    "ListApplicationTemplateRevisionsResponse": {
      "id": "ListApplicationTemplateRevisionsResponse",
      "description": "Message for response to listing application template revisions.",
      "type": "object",
      "properties": {
        "applicationTemplateRevisions": {
          "description": "The list of application template revisions.",
          "type": "array",
          "items": {
            "$ref": "ApplicationTemplateRevision"
          }
        },
        "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"
          }
        }
      }
    },
    "Catalog": {
      "id": "Catalog",
      "description": "A collection of templates.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The catalog display name.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The catalog description.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The catalog creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The catalog update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "ListCatalogsResponse": {
      "id": "ListCatalogsResponse",
      "description": "Results returned from catalogs.list.",
      "type": "object",
      "properties": {
        "catalogs": {
          "description": "A list of catalogs",
          "type": "array",
          "items": {
            "$ref": "Catalog"
          }
        },
        "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"
        }
      }
    },
    "CatalogTemplate": {
      "id": "CatalogTemplate",
      "description": "A template inside a catalog.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The catalog template name in following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The display name of a catalog template.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The catalog template description.",
          "type": "string"
        },
        "uuid": {
          "description": "Output only. The template revisions UUID.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "latestRevisionId": {
          "description": "Output only. Latest revision of the template.",
          "readOnly": true,
          "type": "string"
        },
        "templateCategory": {
          "description": "Required. The category of the ADC template.",
          "type": "string",
          "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
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "type": {
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        }
      }
    },
    "ListCatalogTemplatesResponse": {
      "id": "ListCatalogTemplatesResponse",
      "description": "Message for response to listing catalog templates.",
      "type": "object",
      "properties": {
        "catalogTemplates": {
          "description": "The list of catalog templates.",
          "type": "array",
          "items": {
            "$ref": "CatalogTemplate"
          }
        },
        "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"
        }
      }
    },
    "Share": {
      "id": "Share",
      "description": "A catalog share between spaces.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
          "type": "string"
        },
        "destinationSpace": {
          "description": "Required. The space resource path to which the catalog is shared. Format is `projects/$project/locations/$location/spaces/$space`",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The share creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "state": {
          "description": "Output only. The state of the share.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The state of the share is unknown.",
            "The share is in sync with the shared template catalog.",
            "The share is out of sync with the shared template catalog."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "IN_SYNC",
            "OUT_OF_SYNC"
          ]
        }
      }
    },
    "ListSharesResponse": {
      "id": "ListSharesResponse",
      "description": "Message for response to listing shares of a catalog.",
      "type": "object",
      "properties": {
        "shares": {
          "description": "The list of shares.",
          "type": "array",
          "items": {
            "$ref": "Share"
          }
        },
        "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"
        }
      }
    },
    "SyncShareRequest": {
      "id": "SyncShareRequest",
      "description": "Message for syncing a share of a catalog.",
      "type": "object",
      "properties": {}
    },
    "SharedTemplate": {
      "id": "SharedTemplate",
      "description": "A read-only template that is shared with a space.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The shared template name. projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The shared template display name.",
          "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"
        },
        "createTime": {
          "description": "Output only. The shared template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The shared template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "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",
          "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
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "type": {
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        }
      }
    },
    "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"
        }
      }
    },
    "SharedTemplateRevision": {
      "id": "SharedTemplateRevision",
      "description": "A read-only template revision that is shared with a space.",
      "type": "object",
      "properties": {
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "gcsSourceUri": {
          "description": "Optional. The Cloud Storage URI, which must be in the format gs://[bucket] or gs://[bucket]/[object].",
          "type": "string"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "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"
        },
        "description": {
          "description": "Optional. The shared template revision description.",
          "type": "string"
        },
        "type": {
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        },
        "sharedTemplateMetadata": {
          "description": "Output only. The shared template metadata.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "originTemplateRevision": {
          "description": "Output only. The shared template revision refers to the following catalog template revision.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The shared template revision creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "applicationTemplateRevision": {
          "description": "Output only. The serialized application template revision.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "readOnly": true,
          "$ref": "HelmChartMetadata"
        },
        "templateCategory": {
          "description": "Output only. The category of the ADC template.",
          "readOnly": true,
          "type": "string",
          "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
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "logicalProducts": {
          "description": "Output only. The Product Main logical product type information.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "LogicalProduct"
          }
        },
        "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"
          }
        },
        "inferredMetadata": {
          "description": "Output only. Metadata that was automatically inferred from the template content.",
          "readOnly": true,
          "$ref": "InferredMetadata"
        },
        "resourceTypes": {
          "description": "Output only. The resource types present in the template revision.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ResourceType"
          }
        }
      }
    },
    "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"
        },
        "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"
        },
        "commitSha": {
          "description": "Output only. The commit SHA of the git repo deduced from given ref_tag.",
          "readOnly": true,
          "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"
        },
        "refTag": {
          "description": "Required. The reference tag of the git repo.",
          "type": "string"
        }
      }
    },
    "DeveloperConnectConfig": {
      "id": "DeveloperConnectConfig",
      "description": "This config defines the location of a source through Developer Connect.",
      "type": "object",
      "properties": {
        "gitRepositoryLink": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.",
          "type": "string"
        }
      }
    },
    "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"
        },
        "reference": {
          "description": "Required. The reference (for example, a branch, tag, or commit SHA) from which the content should be read.",
          "$ref": "GitReference"
        },
        "dir": {
          "description": "Required. The sub-directory within the repository from which to read content. The path must be relative to the repository's root such as dir1/dir2. To read content from the root dir, provide \"/\" as the value of the field.",
          "type": "string"
        },
        "fetchedCommitSha": {
          "description": "Output only. The SHA of the commit deduced from GitReference.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GitReference": {
      "id": "GitReference",
      "description": "The Git reference. Can be a commit SHA, branch name, or tag name.",
      "type": "object",
      "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"
        }
      }
    },
    "OciRepo": {
      "id": "OciRepo",
      "description": "Open Container Initiative (OCI) repo.",
      "type": "object",
      "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"
        }
      }
    },
    "TFBlueprintMetadata": {
      "id": "TFBlueprintMetadata",
      "description": "Terraform input and output metadata.",
      "type": "object",
      "properties": {
        "terraformInput": {
          "description": "Output only. Terraform inputs.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInput"
          }
        },
        "terraformOutput": {
          "description": "Output only. Terraform outputs.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformOutput"
          }
        },
        "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"
          }
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account deploying the template, in the form of \"roles/compute.admin\".",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "deploymentDuration": {
          "description": "Optional. The time estimate for deploying the blueprint.",
          "type": "string",
          "format": "google-duration"
        },
        "iconUri": {
          "description": "Output only. The icon URI for the blueprint.",
          "readOnly": true,
          "type": "string"
        },
        "connections": {
          "description": "Output only. TODO b/358313147 - Check if connection field is required here. Union of all the Terraform input connections.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInputConnections"
          }
        },
        "uiMetadata": {
          "description": "Output only. UI metadata for the blueprint.",
          "readOnly": true,
          "$ref": "TerraformBlueprintUiMetadata"
        },
        "providerVersions": {
          "description": "Output only. Provider versions required to deploy the blueprint.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ProviderVersion"
          }
        }
      }
    },
    "TerraformInput": {
      "id": "TerraformInput",
      "description": "Terraform inputs.",
      "type": "object",
      "properties": {
        "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"
        },
        "defaultValue": {
          "description": "Output only. The default value of the Terraform input variable.",
          "readOnly": true,
          "type": "any"
        },
        "connections": {
          "description": "Output only. Terraform input connections.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInputConnections"
          }
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        }
      }
    },
    "TerraformInputConnections": {
      "id": "TerraformInputConnections",
      "description": "TerraformInputConnections",
      "type": "object",
      "properties": {
        "cftTemplateUri": {
          "description": "Output only. List of other templates that can be connected to.",
          "readOnly": true,
          "type": "string"
        },
        "cftTemplateVersion": {
          "description": "Output only. Version of the other template that can be connected to.",
          "readOnly": true,
          "type": "string"
        },
        "outputVar": {
          "description": "Output only. Output variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        },
        "inputPath": {
          "description": "Output only. Input path of the other template that can be connected to.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "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"
        }
      }
    },
    "TerraformBlueprintUiMetadata": {
      "id": "TerraformBlueprintUiMetadata",
      "description": "Terraform blueprint UI metadata.",
      "type": "object",
      "properties": {
        "terraformUiInput": {
          "description": "Output only. Terraform UI inputs.",
          "readOnly": true,
          "$ref": "TerraformUiInput"
        },
        "terraformUiOutput": {
          "description": "Output only. Terraform UI outputs.",
          "readOnly": true,
          "$ref": "TerraformUiOutput"
        }
      }
    },
    "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"
          }
        }
      }
    },
    "TerraformUiInputDisplayVariable": {
      "id": "TerraformUiInputDisplayVariable",
      "description": "Terraform blueprint UI input display variable.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Output only. Display name of the input.",
          "readOnly": true,
          "type": "string"
        },
        "title": {
          "description": "Output only. Title of the input.",
          "readOnly": true,
          "type": "string"
        },
        "alternateDefaults": {
          "description": "Output only. Alternate defaults for the input.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "AlternateDefault"
          }
        },
        "regexValidation": {
          "description": "Output only. Regex based validation rules for the variable.",
          "readOnly": true,
          "type": "string"
        },
        "min": {
          "description": "Output only. Minimum value for numeric types.",
          "readOnly": true,
          "type": "number",
          "format": "float"
        },
        "max": {
          "description": "Output only. Maximum 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"
        },
        "enumValueLabels": {
          "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",
          "items": {
            "$ref": "ValueLabel"
          }
        },
        "level": {
          "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",
          "format": "int32"
        },
        "subtext": {
          "description": "Output only. Property subtext, displayed below the title.",
          "readOnly": true,
          "type": "string"
        },
        "toggleUsingVariables": {
          "description": "Output only. Variables used to toggle the display of another variable.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DisplayVariableToggle"
          }
        },
        "properties": {
          "description": "Output only. A map that defines all fields of the input variable.",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          }
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        }
      }
    },
    "DisplayVariableToggle": {
      "id": "DisplayVariableToggle",
      "description": "Display variable toggle.",
      "type": "object",
      "properties": {
        "variable": {
          "description": "Output only. The name of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "type": "string"
        },
        "variableValues": {
          "description": "Output only. The value of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "variableType": {
          "description": "Output only. The type of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default",
            "Boolean",
            "String",
            "Integer"
          ],
          "enum": [
            "TOGGLE_VARIABLE_TYPE_UNSPECIFIED",
            "TOGGLE_VARIABLE_TYPE_BOOLEAN",
            "TOGGLE_VARIABLE_TYPE_STRING",
            "TOGGLE_VARIABLE_TYPE_INTEGER"
          ]
        }
      }
    },
    "TerraformUiOutput": {
      "id": "TerraformUiOutput",
      "description": "Terraform blueprint UI output.",
      "type": "object",
      "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"
          }
        }
      }
    },
    "TerraformUiOutputDisplay": {
      "id": "TerraformUiOutputDisplay",
      "description": "Terraform blueprint UI output display.",
      "type": "object",
      "properties": {
        "visibility": {
          "description": "Output only. Visibility of the output.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ],
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ]
        }
      }
    },
    "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"
        }
      }
    },
    "HelmChartMetadata": {
      "id": "HelmChartMetadata",
      "description": "Helm Chart metadata.",
      "type": "object",
      "properties": {
        "helmInput": {
          "description": "Output only. Helm Chart inputs.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "HelmChartInput"
          }
        },
        "helmOutput": {
          "description": "Output only. Helm Chart outputs.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "HelmChartOutput"
          }
        }
      }
    },
    "HelmChartInput": {
      "id": "HelmChartInput",
      "description": "Helm Chart inputs. Documentation: https://helm.sh/docs/",
      "type": "object",
      "properties": {
        "helmInputVariable": {
          "description": "Output only. Input variable name present in Helm Chart values.yaml",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Output only. Input variable description.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. Input data type.",
          "readOnly": true,
          "type": "string"
        },
        "defaultValue": {
          "description": "Output only. The default value of the input variable.",
          "readOnly": true,
          "type": "any"
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        },
        "nestedInputs": {
          "description": "Output only. Contains details of nested inputs.",
          "readOnly": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "HelmChartInput"
          }
        }
      }
    },
    "HelmChartOutput": {
      "id": "HelmChartOutput",
      "description": "Helm Chart outputs.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Output only. Type of output.",
          "readOnly": true,
          "type": "any"
        },
        "helmOutputVariable": {
          "description": "Output only. Output variable name present.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Output only. Description of the variable.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "LogicalProduct": {
      "id": "LogicalProduct",
      "description": "Represents a Product Main logical product.",
      "type": "object",
      "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"
        }
      }
    },
    "InferredMetadata": {
      "id": "InferredMetadata",
      "description": "Inferred metadata.",
      "type": "object",
      "properties": {
        "description": {
          "description": "Output only. Inferred description.",
          "readOnly": true,
          "type": "string"
        },
        "templateMetadata": {
          "description": "Output only. Inferred template metadata related to Terraform input and output.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "createTime": {
          "description": "Output only. Inferred metadata creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. Inferred metadata update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "ResourceType": {
      "id": "ResourceType",
      "description": "Represents the type of a resource within a component template.",
      "type": "object",
      "properties": {
        "tfResource": {
          "description": "Output only. The Terraform resource type. For example: \"google_compute_instance\".",
          "readOnly": true,
          "type": "string"
        },
        "caisResource": {
          "description": "Output only. The CAIS resource type.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "ListSharedTemplateRevisionsResponse": {
      "id": "ListSharedTemplateRevisionsResponse",
      "description": "Message for response to listing shared templates.",
      "type": "object",
      "properties": {
        "sharedTemplateRevisions": {
          "description": "The list of shared templates.",
          "type": "array",
          "items": {
            "$ref": "SharedTemplateRevision"
          }
        },
        "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"
        }
      }
    },
    "CatalogTemplateRevision": {
      "id": "CatalogTemplateRevision",
      "description": "Template revisions inside a catalog.",
      "type": "object",
      "properties": {
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "gcsSourceUri": {
          "description": "Optional. The Cloud Storage URI, which must be in the format gs://[bucket] or gs://[bucket]/[object].",
          "type": "string"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "name": {
          "description": "Identifier. The catalog template revision name. projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template/revisions/$revision",
          "type": "string"
        },
        "description": {
          "description": "Optional. The catalog template revision description.",
          "type": "string"
        },
        "type": {
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "templateMetadata": {
          "description": "Output only. Template metadata related to Terraform input and output.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "state": {
          "description": "Output only. The template state (validating/ready/invalid).",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The template is being validated.",
            "The template is ready to be used.",
            "The template is invalid."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "VALIDATING",
            "ACTIVE",
            "INVALID"
          ]
        },
        "applicationTemplateRevision": {
          "description": "Output only. The application template revision.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "readOnly": true,
          "$ref": "HelmChartMetadata"
        },
        "uuid": {
          "description": "Output only. UUID of the template revision.",
          "readOnly": true,
          "type": "string"
        },
        "metadataInput": {
          "description": "Optional. Metadata input.",
          "$ref": "MetadataInput"
        },
        "templateCategory": {
          "description": "Output only. The category of the ADC template.",
          "readOnly": true,
          "type": "string",
          "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
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "logicalProducts": {
          "description": "Output only. The Product Main logical product type information.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "LogicalProduct"
          }
        },
        "annotations": {
          "description": "Optional. The annotations of the template revision. Key is the annotation name. Value is the annotation value.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "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"
        },
        "resourceTypes": {
          "description": "Output only. The resource types present in the template revision.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ResourceType"
          }
        }
      }
    },
    "MetadataInput": {
      "id": "MetadataInput",
      "description": "Metadata for the input",
      "type": "object",
      "properties": {
        "spec": {
          "description": "Required. spec containing the metadata",
          "$ref": "MetadataInputSpec"
        }
      }
    },
    "MetadataInputSpec": {
      "id": "MetadataInputSpec",
      "description": "Specifications for the input",
      "type": "object",
      "properties": {
        "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"
        },
        "requirements": {
          "description": "Required. TemplateRequirements defines the roles required and the provider versions.",
          "$ref": "TemplateRequirements"
        },
        "ui": {
          "description": "Optional. TemplateUi defines the UI related information for the Template.",
          "$ref": "TemplateUi"
        }
      }
    },
    "TemplateInfo": {
      "id": "TemplateInfo",
      "description": "TemplateInfo provides the actuation tool information.",
      "type": "object",
      "properties": {
        "actuationTool": {
          "description": "Required. IaCFormatInfo defines the actuation tool used to provision the Template.",
          "$ref": "IacFormatInfo"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "TemplateConnections": {
      "id": "TemplateConnections",
      "description": "TemplateConnections",
      "type": "object",
      "properties": {
        "source": {
          "description": "Required. Source of the connection.",
          "$ref": "ConnectionSource"
        },
        "spec": {
          "description": "Required. Connection specifications.",
          "$ref": "ConnectionSpec"
        }
      }
    },
    "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"
        }
      }
    },
    "ConnectionSpec": {
      "id": "ConnectionSpec",
      "description": "Defines the specifications of a connection.",
      "type": "object",
      "properties": {
        "outputExpr": {
          "description": "Required. Output expression identifying output being connected to variable.",
          "type": "string"
        },
        "inputPath": {
          "description": "Optional. Optional dot separated attribuite notation to connect to a specific object field of the input variable.",
          "type": "string"
        }
      }
    },
    "TemplateRequirements": {
      "id": "TemplateRequirements",
      "description": "TemplateRequirements defines the roles required and the associated services that need to be enabled to provision Template resources.",
      "type": "object",
      "properties": {
        "roles": {
          "description": "Required. All roles required for the component",
          "type": "array",
          "items": {
            "$ref": "TemplateRoles"
          }
        },
        "providerVersions": {
          "description": "Required. Required provider versions.",
          "type": "array",
          "items": {
            "$ref": "ProviderVersion"
          }
        }
      }
    },
    "TemplateRoles": {
      "id": "TemplateRoles",
      "description": "Template Roles provide the level and roles",
      "type": "object",
      "properties": {
        "level": {
          "description": "Required. Level of the role.",
          "type": "string"
        },
        "roles": {
          "description": "Required. List of roles.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "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"
        }
      }
    },
    "TemplateUiInput": {
      "id": "TemplateUiInput",
      "description": "TemplateUiInput defines the list of variables and their sections on the deployment page.",
      "type": "object",
      "properties": {
        "variables": {
          "description": "Required. variables is a map defining all inputs on the UI.",
          "type": "object",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          }
        }
      }
    },
    "DisplayVariable": {
      "id": "DisplayVariable",
      "description": "Additional display specific Template pertaining to a particular input variable.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Required. The variable name from the corresponding standard Template file.",
          "type": "string"
        },
        "title": {
          "description": "Required. Visible title for the variable on the UI.",
          "type": "string"
        },
        "alternateDefaults": {
          "description": "Optional. Alternate defaults for the input.",
          "type": "array",
          "items": {
            "$ref": "AlternateDefaultInput"
          }
        },
        "regexValidation": {
          "description": "Optional. Regex based validation rules for the variable.",
          "type": "string"
        },
        "min": {
          "description": "Optional. Minimum value for numeric types.",
          "type": "number",
          "format": "float"
        },
        "max": {
          "description": "Optional. Maximum value for numeric types.",
          "type": "number",
          "format": "float"
        },
        "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"
        },
        "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"
        },
        "subtext": {
          "description": "Optional. Property subtext, displayed below the title.",
          "type": "string"
        },
        "properties": {
          "description": "Optional. properties is a map defining all the fields of the input variable.",
          "type": "object",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          }
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        }
      }
    },
    "ListCatalogTemplateRevisionsResponse": {
      "id": "ListCatalogTemplateRevisionsResponse",
      "description": "Message for response to listing template revisions.",
      "type": "object",
      "properties": {
        "catalogTemplateRevisions": {
          "description": "The list of template revisions.",
          "type": "array",
          "items": {
            "$ref": "CatalogTemplateRevision"
          }
        },
        "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"
          }
        }
      }
    },
    "Application": {
      "id": "Application",
      "description": "Represents the application resource.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. Create timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. Update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "source": {
          "description": "Required. The application deployment source.",
          "$ref": "DeploymentSource"
        },
        "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"
          }
        },
        "componentParameters": {
          "description": "Optional. A list of component parameters to associate with the application.",
          "type": "array",
          "items": {
            "$ref": "ComponentParameters"
          }
        },
        "serviceAccount": {
          "description": "Optional. Your own service account that you use to deploy an application.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Display name of the application.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Description of the application.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. Attributes of the application.",
          "$ref": "Attributes"
        },
        "scope": {
          "description": "Required. Scope of the application.",
          "$ref": "Scope"
        },
        "importExistingResources": {
          "description": "Optional. Import existing resources into the application.",
          "type": "boolean"
        },
        "previewReference": {
          "description": "Output only. Preview reference for the application.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "serializedApplicationTemplate": {
          "description": "Output only. [Output only] Serialized application template.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "state": {
          "description": "Output only. Deployment state of the application.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified application deployment state.",
            "Application is in draft.",
            "New application deployment is in progress.",
            "Update application deployment is in progress.",
            "Delete application deployment is in progress.",
            "Application deployment is completed.",
            "Application deployment is deleted.",
            "Application deployment is failed.",
            "Application deployment is in progress."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED",
            "DEPLOYING"
          ]
        },
        "deploymentMetadata": {
          "description": "Output only. Deployment metadata of the application.",
          "readOnly": true,
          "$ref": "DeploymentMetadata"
        },
        "projectParameters": {
          "description": "Output only. List of project parameters for the application.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ProjectParameters"
          }
        },
        "deploymentRegion": {
          "description": "Optional. The region where the application is deployed.",
          "type": "string"
        },
        "updatedTemplateRevision": {
          "description": "Output only. The updated template revision because of which the application is outdated.",
          "readOnly": true,
          "$ref": "UpdatedTemplateRevision"
        },
        "deploymentProject": {
          "description": "Optional. Deployment project of the application.",
          "type": "string"
        },
        "connectionConfigs": {
          "description": "Optional. Connection configuration for the application.",
          "type": "array",
          "items": {
            "$ref": "ConnectionConfig"
          }
        },
        "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"
          ]
        },
        "deploymentTarget": {
          "description": "Optional. The deployment target of the application.",
          "$ref": "DeploymentTarget"
        },
        "compositionType": {
          "description": "Output only. The composition type of the application: STANDARD OR COMPOSITE.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "ApplicationCompositionType is STANDARD. The applicationTemplate or application is composed of components only of type service/workload/asset and has a single root module in terraform code.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ]
        },
        "compositeApplicationParameters": {
          "description": "Optional. Parameters that are required for composite applications.",
          "$ref": "CompositeApplicationParameters"
        },
        "deploymentGroupMetadata": {
          "description": "Output only. The deployment group metadata of the application. This is applicable only for composite applications.",
          "readOnly": true,
          "$ref": "DeploymentGroupMetadata"
        },
        "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"
          ]
        }
      }
    },
    "DeploymentSource": {
      "id": "DeploymentSource",
      "description": "Source template information for the deployment.",
      "type": "object",
      "properties": {
        "applicationTemplateRevision": {
          "description": "Application template revision URI.",
          "type": "string"
        },
        "sharedTemplateRevisionUri": {
          "description": "Shared template revision URI.",
          "type": "string"
        }
      }
    },
    "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"
        },
        "parameters": {
          "description": "Optional. A list of parameters associated with the component.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "connectionsParameters": {
          "description": "Output only. ",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ConnectionParameters"
          }
        },
        "state": {
          "description": "Output only. Deployment state of the component.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified component deployment state.",
            "Component is in draft.",
            "New deployment is in progress.",
            "Update is in progress.",
            "Deletion is in progress.",
            "Component deployment is completed.",
            "Component deployment is deleted.",
            "Component deployment is failed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED"
          ]
        },
        "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"
        },
        "effectiveApplicationInfo": {
          "description": "Output only. The effective application associated with the component. This is the server set application field.",
          "readOnly": true,
          "$ref": "ComponentApplicationInfo"
        }
      }
    },
    "DeploymentMetadata": {
      "id": "DeploymentMetadata",
      "description": "Deployment information for the application.",
      "type": "object",
      "properties": {
        "revision": {
          "description": "Output only. The revision of the deployment associated with the Application.",
          "readOnly": true,
          "type": "string"
        },
        "componentOutputParameters": {
          "description": "Output only. The component output parameters of the deployment.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentOutputParameters"
          }
        },
        "error": {
          "description": "Output only. The error associated with the deployment.",
          "readOnly": true,
          "$ref": "DeploymentError"
        },
        "build": {
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "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"
        }
      }
    },
    "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": {
          "description": "Output only. The output parameters of the component.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "DeploymentError": {
      "id": "DeploymentError",
      "description": "The error associated with the deployment.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Output only. The error type based on the deployment error code.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified error type.",
            "Permission related error.",
            "Quota related error.",
            "Resource already exists.",
            "Resource is unavailable.",
            "Billing related error.",
            "Generic error if error does not fall under any of the above.",
            "Terraform related error.",
            "Bad input error.",
            "Platform related error.",
            "API enablement error.",
            "Bad request error."
          ],
          "enum": [
            "ERROR_TYPE_UNSPECIFIED",
            "PERMISSION",
            "QUOTA",
            "ALREADY_EXISTS",
            "RESOURCE_UNAVAILABLE",
            "BILLING",
            "GENERIC",
            "TERRAFORM",
            "BAD_INPUT",
            "PLATFORM",
            "API_ENABLEMENT",
            "BAD_REQUEST"
          ]
        },
        "code": {
          "description": "Output only. The deployment error code. Based on Infrastructure Manager error codes.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "No error code was specified.",
            "The revision failed. See Revision for more details.",
            "Cloud Build failed due to a permission issue.",
            "Cloud Build job associated with a deployment deletion could not be started.",
            "Cloud Build job associated with a deployment deletion was started but failed.",
            "Cloud Storage bucket creation failed due to a permission issue.",
            "Cloud Storage bucket creation failed due to an issue unrelated to permissions.",
            "Failed to import values from an external source."
          ],
          "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"
          ]
        },
        "tfErrors": {
          "description": "Output only. The error message associated with the deployment.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformError"
          }
        },
        "detail": {
          "description": "Output only. Human readable string that summarizes the deployment error issue.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentFailureResolutionInfo": {
          "description": "Output only. The call to actions associated with the deployment issue.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DeploymentFailureResolutionInfo"
          }
        },
        "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"
        }
      }
    },
    "TerraformError": {
      "id": "TerraformError",
      "description": "Errors encountered during actuation using Terraform",
      "type": "object",
      "properties": {
        "resourceAddress": {
          "description": "Address of the resource associated with the error, e.g. `google_compute_network.vpc_network`.",
          "type": "string"
        },
        "httpResponseCode": {
          "description": "HTTP response code returned from Google Cloud Platform APIs when Terraform fails to provision the resource. If unset or 0, no HTTP response code was returned by Terraform.",
          "type": "integer",
          "format": "int32"
        },
        "errorDescription": {
          "description": "A human-readable error description.",
          "type": "string"
        },
        "error": {
          "description": "Output only. Original error response from underlying Google API, if available.",
          "readOnly": true,
          "$ref": "Status"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        }
      }
    },
    "HelmApplicationOutputParameters": {
      "id": "HelmApplicationOutputParameters",
      "description": "The helm application output parameters of the deployment.",
      "type": "object",
      "properties": {
        "parameters": {
          "description": "Output only. The output parameters of the helm application.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "ProjectParameters": {
      "id": "ProjectParameters",
      "description": "The ProjectParameters provides the parameters needed to deploy the application in the given project.",
      "type": "object",
      "properties": {
        "projectId": {
          "description": "Output only. The project ID of the project.",
          "readOnly": true,
          "type": "string"
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account to deploy the application in given project.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "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"
          }
        }
      }
    },
    "UpdatedTemplateRevision": {
      "id": "UpdatedTemplateRevision",
      "description": "The updated template revision, which results in an outdated application.",
      "type": "object",
      "properties": {
        "templateRevision": {
          "description": "Output only. The details of the updated template revision.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time when the template was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "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"
        }
      }
    },
    "ConnectionConfig": {
      "id": "ConnectionConfig",
      "description": "Connection configuration for the application.",
      "type": "object",
      "properties": {
        "connectionUri": {
          "description": "Required. The connection URI.",
          "type": "string"
        },
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        },
        "destinationComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "type": "array",
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "DeploymentTarget": {
      "id": "DeploymentTarget",
      "description": "The deployment target of the application.",
      "type": "object",
      "properties": {
        "gkeDeploymentTarget": {
          "description": "Optional. The GKE deployment target.",
          "$ref": "GKEDeploymentTarget"
        }
      }
    },
    "GKEDeploymentTarget": {
      "id": "GKEDeploymentTarget",
      "description": "The GKE deployment target.",
      "type": "object",
      "properties": {
        "clusterSelfLink": {
          "description": "Required. The self link of the cluster where GKE based application is deployed.",
          "type": "string"
        },
        "namespace": {
          "description": "Required. The namespace where the application is deployed.",
          "type": "string"
        },
        "kubernetesServiceAccount": {
          "description": "Required. The kubernetes service account that is created within the namespace provided above. Example: default or node-sa",
          "type": "string"
        },
        "kubernetesServiceAccountCreation": {
          "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"
        }
      }
    },
    "CompositeApplicationParameters": {
      "id": "CompositeApplicationParameters",
      "description": "Holds parameters that are specific to composite applications.",
      "type": "object",
      "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"
          }
        }
      }
    },
    "ProjectParametersList": {
      "id": "ProjectParametersList",
      "description": "Provides the list of project parameters needed to deploy an application.",
      "type": "object",
      "properties": {
        "projectParameters": {
          "description": "Output only. List of project parameters for the application.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ProjectParameters"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "ListApplicationsResponse": {
      "id": "ListApplicationsResponse",
      "description": "Message for response to listing applications.",
      "type": "object",
      "properties": {
        "applications": {
          "description": "The list of applications.",
          "type": "array",
          "items": {
            "$ref": "Application"
          }
        },
        "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": "Unordered list. Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "DeployApplicationRequest": {
      "id": "DeployApplicationRequest",
      "description": "Message for deploying an application.",
      "type": "object",
      "properties": {
        "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"
        },
        "workerPool": {
          "description": "Optional. The user-specified Worker Pool resource in which the Cloud Build job will execute. Format: projects/{project}/locations/{location}/workerPools/{workerPoolId} If this flag is omitted, the worker pool already defined on the application will be used. If no worker pool is defined on the application, the default Cloud Build worker pool is used. The worker pool must exist in the same region as the application.",
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. The email address of the service account to use for this 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"
        }
      }
    },
    "PreviewApplicationRequest": {
      "id": "PreviewApplicationRequest",
      "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"
        },
        "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"
        }
      }
    },
    "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"
        }
      }
    },
    "AssessmentReport": {
      "id": "AssessmentReport",
      "description": "Aggregated assessment report from all domains.",
      "type": "object",
      "properties": {
        "adcApplicationUri": {
          "description": "Output only. ADC Application URI.",
          "readOnly": true,
          "type": "string"
        },
        "adcApplicationTemplateUri": {
          "description": "Output only. ADC Application Template URI.",
          "readOnly": true,
          "type": "string"
        },
        "adcCatalogTemplateUri": {
          "description": "Output only. ADC Catalog Template URI.",
          "readOnly": true,
          "type": "string"
        },
        "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": {
          "description": "Output only. Skipped domains.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "SkippedDomain"
          }
        },
        "createTime": {
          "description": "Output only. The time at which the report was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "DomainAssessmentReport": {
      "id": "DomainAssessmentReport",
      "description": "The assessment report for each domain.",
      "type": "object",
      "properties": {
        "reportName": {
          "description": "Optional. The report name as per ADC.",
          "type": "string"
        },
        "domainId": {
          "description": "Output only. The ID of the domain.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time at which the report was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The time at which the report was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "status": {
          "description": "Optional. Status of assessment report.",
          "type": "string",
          "enumDescriptions": [
            "No status specified.",
            "Pending domain assessment.",
            "Complete domain assessment.",
            "Failed domain assessment."
          ],
          "enum": [
            "STATUS_UNSPECIFIED",
            "PENDING",
            "COMPLETED",
            "FAILED"
          ]
        },
        "adcMetadata": {
          "description": "Output only. ADC specific information and metadata.",
          "readOnly": true,
          "$ref": "AdcMetadata"
        },
        "assessedFrameworks": {
          "description": "Required. List of frameworks assessed and their findings.",
          "type": "array",
          "items": {
            "$ref": "AssessedFramework"
          }
        },
        "additionalInfo": {
          "description": "Optional. Additional information about the report.",
          "type": "string"
        },
        "skippedAssetTypes": {
          "description": "Optional. List of asset types skipped during assessment.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "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": {
      "id": "AdcMetadata",
      "description": "ADC specific information and metadata.",
      "type": "object",
      "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"
        }
      }
    },
    "AssessedFramework": {
      "id": "AssessedFramework",
      "description": "Framework assessed and their findings.",
      "type": "object",
      "properties": {
        "framework": {
          "description": "Required. The framework that was assessed.",
          "$ref": "Framework"
        },
        "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": {
      "id": "Framework",
      "description": "Framework for assessment.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Required. The framework name.",
          "type": "string"
        },
        "majorRevisionId": {
          "description": "Optional. The major revision id of the framework.",
          "type": "integer",
          "format": "int32"
        },
        "parentDomain": {
          "description": "Required. The domain to which this framework belongs.",
          "$ref": "Domain"
        },
        "displayName": {
          "description": "Optional. The framework display name.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The framework description.",
          "type": "string"
        },
        "url": {
          "description": "Optional. The URL to a framework.",
          "type": "string"
        },
        "active": {
          "description": "Optional. Whether the framework is active.",
          "type": "boolean"
        },
        "cloudControlDetails": {
          "description": "Optional. The cloud controls that are associated with the framework.",
          "type": "array",
          "items": {
            "$ref": "CloudControl"
          }
        },
        "deploymentStatus": {
          "description": "Optional. The deployment status of the framework.",
          "type": "string",
          "enumDescriptions": [
            "Deployment status unspecified.",
            "Framework is deployed.",
            "Framework is undeployed."
          ],
          "enum": [
            "DEPLOYMENT_STATUS_UNSPECIFIED",
            "DEPLOYED",
            "UNDEPLOYED"
          ]
        }
      }
    },
    "Domain": {
      "id": "Domain",
      "description": "Domain for assessment.",
      "type": "object",
      "properties": {
        "domainName": {
          "description": "Required. The domain name. Uniquely identifies the domain.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The domain display name is user friendly name used for UI.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The domain description.",
          "type": "string"
        },
        "frameworks": {
          "description": "Optional. The frameworks that are applicable in this domain.",
          "type": "array",
          "items": {
            "$ref": "Framework"
          }
        },
        "inactive": {
          "description": "Optional. Whether the domain is inactive. Default: false.",
          "type": "boolean"
        }
      }
    },
    "CloudControl": {
      "id": "CloudControl",
      "description": "Cloud control for a framework.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Required. The name of the cloud control.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The description of the cloud control.",
          "type": "string"
        },
        "majorRevisionId": {
          "description": "Required. The major revision id of the cloud control.",
          "type": "integer",
          "format": "int32"
        },
        "enforcementMode": {
          "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."
          ],
          "enum": [
            "ENFORCEMENT_MODE_UNSPECIFIED",
            "PREVENTIVE",
            "DETECTIVE",
            "AUDIT"
          ]
        }
      }
    },
    "AssessmentFinding": {
      "id": "AssessmentFinding",
      "description": "Details of an Assessment Finding.",
      "type": "object",
      "properties": {
        "remediationStep": {
          "description": "Optional. A description of the steps that users can take to fix the finding.",
          "$ref": "RemediationStep"
        },
        "additionalNotes": {
          "description": "Optional. A description of the additional details about finding.",
          "type": "string"
        },
        "id": {
          "description": "Output only. The Finding ID.",
          "readOnly": true,
          "type": "string"
        },
        "assessedFrameworkId": {
          "description": "Optional. The framework that was assessed.",
          "type": "string"
        },
        "adcMetadata": {
          "description": "Output only. Metadata related to the ADC with the finding.",
          "readOnly": true,
          "$ref": "FindingADCMetadata"
        },
        "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"
          ]
        },
        "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"
          ]
        },
        "assessedAsset": {
          "description": "Required. Details of the Cloud Asset Inventory asset that was assessed.",
          "$ref": "AssetDetails"
        },
        "assessedFramework": {
          "description": "Optional. Details of the framework that was assessed.",
          "$ref": "Framework"
        },
        "description": {
          "description": "Optional. Description of the finding.",
          "type": "string"
        },
        "findingsUri": {
          "description": "Optional. Link to the findings, if persisted by the domain.",
          "type": "string"
        },
        "sccMetadata": {
          "description": "Output only. SCC related metadata for the finding.",
          "readOnly": true,
          "$ref": "SCCMetadata"
        }
      }
    },
    "RemediationStep": {
      "id": "RemediationStep",
      "description": "Remediation steps that can be taken to rectify the finding.",
      "type": "object",
      "properties": {
        "remediationSteps": {
          "description": "Required. A description of the steps that users can take to remediate the findings.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "remediationDocumentationUrl": {
          "description": "Optional. Remediation documentation URL.",
          "type": "string"
        },
        "note": {
          "description": "Optional. Any other note related to the remediation.",
          "type": "string"
        }
      }
    },
    "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"
        }
      }
    },
    "AssetDetails": {
      "id": "AssetDetails",
      "description": "Details of a Cloud Asset Inventory asset that caused the finding.",
      "type": "object",
      "properties": {
        "assetId": {
          "description": "Required. Information about the Cloud Asset Inventory asset that the framework is assessed against. The full resource name of the asset in CAIS format. For details about the format of the full resource name for each asset type, see [Resource name format] (https://cloud.google.com/asset-inventory/docs/resource-name-format).",
          "type": "string"
        },
        "assetType": {
          "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"
        }
      }
    },
    "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"
        }
      }
    },
    "ScoreCard": {
      "id": "ScoreCard",
      "description": "Score card associated with the report.",
      "type": "object",
      "properties": {
        "reportScore": {
          "description": "Required. Calculated score of the report.",
          "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"
        },
        "minScoreRequired": {
          "description": "Optional. Minimum score required to pass assessment.",
          "type": "integer",
          "format": "int32"
        },
        "averageScore": {
          "description": "Optional. Average score for similar reports.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "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"
        }
      }
    },
    "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": {
          "description": "Output only. Reason for skipping the domain from assessment.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "No reason specified.",
            "Domain is unavailable.",
            "Domain assessment failed.",
            "Domain assessment timed out."
          ],
          "enum": [
            "REASON_UNSPECIFIED",
            "UNAVAILABLE",
            "FAILURE",
            "TIMEOUT"
          ]
        }
      }
    },
    "GenerateApplicationTemplateAssessmentReportRequest": {
      "id": "GenerateApplicationTemplateAssessmentReportRequest",
      "description": "Message for generate assessment report application template.",
      "type": "object",
      "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"
        }
      }
    },
    "GenerateAssessmentReportRequest": {
      "id": "GenerateAssessmentReportRequest",
      "description": "Message for the request to generate a best practice report for a given Terraform plan.",
      "type": "object",
      "properties": {
        "terraformPlan": {
          "description": "Required. Terraform plan bytes.",
          "type": "string",
          "format": "byte"
        },
        "additionalFrameworks": {
          "description": "Optional. Additional Frameworks to run assessment against. If empty, run against default frameworks. Frameworks refers to the policies.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "DesignCenterPolicy": {
      "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",
      "properties": {
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The policy display name.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The policy description.",
          "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": {
          "description": "Output only. The policy creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The policy update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "ApplyCondition": {
      "id": "ApplyCondition",
      "description": "Condition for applying the policy. Condition accepts AppTemplate parameters like criticality, environment only.",
      "type": "object",
      "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"
        }
      }
    },
    "ListPoliciesResponse": {
      "id": "ListPoliciesResponse",
      "description": "Message for response to listing policies.",
      "type": "object",
      "properties": {
        "policies": {
          "description": "A list of policies.",
          "type": "array",
          "items": {
            "$ref": "DesignCenterPolicy"
          }
        },
        "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"
        }
      }
    },
    "FetchFrameworksResponse": {
      "id": "FetchFrameworksResponse",
      "description": "Response for FetchFrameworks rpc",
      "type": "object",
      "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"
        }
      }
    },
    "GenerateApplicationIaCRequest": {
      "id": "GenerateApplicationIaCRequest",
      "description": "Request message for GenerateApplicationIaC 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"
          ]
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI to write the generated IaC to. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        }
      }
    },
    "GenerateApplicationIaCResponse": {
      "id": "GenerateApplicationIaCResponse",
      "description": "Response message for GenerateApplicationIaC method.",
      "type": "object",
      "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"
        }
      }
    },
    "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"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "allowPartialImport": {
          "description": "Optional. If set to true, partially imports the valid edits in the IaC and ignores the invalid changes. Defaults to false, which means any edits which can't be imported must result in an error.",
          "type": "boolean"
        },
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        }
      }
    },
    "IaCModule": {
      "id": "IaCModule",
      "description": "IaCModule represents a single infrastructure as code module.",
      "type": "object",
      "properties": {
        "files": {
          "description": "Optional. The files in the module.",
          "type": "array",
          "items": {
            "$ref": "IaCFile"
          }
        }
      }
    },
    "IaCFile": {
      "id": "IaCFile",
      "description": "IaCFile represents a single infrastructure as code file.",
      "type": "object",
      "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"
        }
      }
    },
    "ImportApplicationTemplateIaCResponse": {
      "id": "ImportApplicationTemplateIaCResponse",
      "description": "Response message for ImportApplicationTemplateIaC method.",
      "type": "object",
      "properties": {
        "applicationTemplate": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "ApplicationTemplate"
        },
        "errors": {
          "description": "Errors encountered during import.",
          "type": "array",
          "items": {
            "$ref": "ImportIaCError"
          }
        },
        "state": {
          "description": "The state of the import.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ]
        }
      }
    },
    "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": {
        "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"
        },
        "range": {
          "description": "Output only. The code portion where this error occurs.",
          "readOnly": true,
          "$ref": "CodeRange"
        },
        "description": {
          "description": "Output only. The description of the error.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. The type of error.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The change is invalid. Example: a string value provided for a number input parameter type, which would be caught by terraform validation.",
            "The change is not supported. Example: a user directly adding a Terraform resource in main.tf that Design Center does not support importing."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "INVALID",
            "NOT_SUPPORTED"
          ]
        }
      }
    },
    "CodeRange": {
      "id": "CodeRange",
      "description": "CodeRange represents a portion of code.",
      "type": "object",
      "properties": {
        "start": {
          "description": "Output only. Start position.",
          "readOnly": true,
          "$ref": "CodePosition"
        },
        "end": {
          "description": "Output only. End position.",
          "readOnly": true,
          "$ref": "CodePosition"
        }
      }
    },
    "CodePosition": {
      "id": "CodePosition",
      "description": "CodePosition represents a code location.",
      "type": "object",
      "properties": {
        "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"
        },
        "column": {
          "description": "Output only. One-based column count of the relevant position.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ImportApplicationIaCRequest": {
      "id": "ImportApplicationIaCRequest",
      "description": "Request message for ImportApplicationIaC method.",
      "type": "object",
      "properties": {
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI of the terraform code.",
          "type": "string"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        },
        "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"
        }
      }
    },
    "ImportApplicationIaCResponse": {
      "id": "ImportApplicationIaCResponse",
      "description": "Response message for ImportApplicationIaC method.",
      "type": "object",
      "properties": {
        "application": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "Application"
        },
        "errors": {
          "description": "Errors encountered during import.",
          "type": "array",
          "items": {
            "$ref": "ImportIaCError"
          }
        },
        "state": {
          "description": "The state of the import.",
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ]
        }
      }
    },
    "InferConnectionsRequest": {
      "id": "InferConnectionsRequest",
      "description": "Request message for InferConnections method.",
      "type": "object",
      "properties": {
        "catalogTemplateRevisionUris": {
          "description": "Optional. A list of Catalog template revisions that you want to infer connections for. If you don't provide this, the system infers connections for the latest revisions of all catalog templates in all the catalogs present in the space.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "useGemini": {
          "description": "Optional. Whether to use Gemini.",
          "type": "boolean"
        }
      }
    },
    "RegisterDeployedResourcesRequest": {
      "id": "RegisterDeployedResourcesRequest",
      "description": "Request message for RegisterDeployedResources method.",
      "type": "object",
      "properties": {
        "terraformState": {
          "description": "The Terraform state (tfstate) content as a raw string. For large state files exceeding 10MB, use the 'tfstate_signed_gcs_uri' field instead.",
          "type": "string"
        },
        "tfstateSignedGcsUri": {
          "description": "A securely signed Cloud Storage URI pointing to the tfstate file. The URI must be signed to grant the service temporary read access to the state file. ADC imposes a limit on the maximum size of the state file accessed via this URI.",
          "type": "string"
        },
        "apphubApplication": {
          "description": "Required. The name of the AppHub Application. Format: projects/{project}/locations/{location}/applications/{application}",
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. The optional Service Account (SA) to use for calling AppHub APIs during registration. If not provided, the End-User Credentials (EUC) will be used. If provided, the EUC must have the 'serviceAccountTokenCreator' role on the SA, and the SA must have the necessary permissions for AppHub registration.",
          "type": "string"
        }
      }
    },
    "RegisterAppHubApplicationResourcesRequest": {
      "id": "RegisterAppHubApplicationResourcesRequest",
      "description": "Request message for RegisterAppHubApplicationResources method.",
      "type": "object",
      "properties": {
        "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"
        },
        "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"
        },
        "apphubApplication": {
          "description": "Required. The name of the AppHub Application. Format: projects/{project}/locations/{location}/applications/{application}",
          "type": "string"
        }
      }
    },
    "RegisterDeployedApplicationRequest": {
      "id": "RegisterDeployedApplicationRequest",
      "description": "Request message for RegisterDeployedApplication method.",
      "type": "object",
      "properties": {
        "terraformState": {
          "description": "The Terraform state (tfstate) content as a raw string. For large state files exceeding 10MB, use the 'tfstate_signed_gcs_uri' field instead.",
          "type": "string"
        },
        "tfstateSignedGcsUri": {
          "description": "A securely signed Cloud Storage URI pointing to the tfstate file. The URI must be signed to grant the service temporary read access to the state file. ADC imposes a limit on the maximum size of the state file accessed via this URI.",
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. The optional Service Account (SA) to use for calling AppHub APIs during registration. If not provided, the End-User Credentials (EUC) will be used. If provided, the EUC must have the 'serviceAccountTokenCreator' role on the SA, and the SA must have the necessary permissions for AppHub registration.",
          "type": "string"
        }
      }
    },
    "ListApplicationTemplateSystemRevisionsResponse": {
      "id": "ListApplicationTemplateSystemRevisionsResponse",
      "description": "Message for response to listing application template system revisions.",
      "type": "object",
      "properties": {
        "applicationTemplateSystemRevisions": {
          "description": "The list of application template system revisions.",
          "type": "array",
          "items": {
            "$ref": "ApplicationTemplateSystemRevision"
          }
        },
        "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": "Unordered list. Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ApplicationTemplateSystemRevision": {
      "id": "ApplicationTemplateSystemRevision",
      "description": "Application template system revision resource.",
      "type": "object",
      "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"
        },
        "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"
          }
        },
        "snapshot": {
          "description": "Output only. The serialized application template snapshot at this revision.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        }
      }
    },
    "RegisterApphubResourcesRequest": {
      "id": "RegisterApphubResourcesRequest",
      "description": "Request message for RegisterApphubResources method.",
      "type": "object",
      "properties": {
        "adcApplicationUri": {
          "description": "The resource uri of the ADC Application. Used for registering resources of an application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
          "type": "string"
        },
        "apphubApplicationUri": {
          "description": "The resource uri of the App Hub application. Used for registering resources of an application template. Format: projects/{project}/locations/{location}/applications/{application}",
          "type": "string"
        },
        "deployedResources": {
          "description": "Optional. The list of deployed GCP resources to register.",
          "type": "array",
          "items": {
            "$ref": "DeployedResource"
          }
        }
      }
    },
    "DeployedResource": {
      "id": "DeployedResource",
      "description": "DeployedResource represents a single deployed GCP resource.",
      "type": "object",
      "properties": {
        "resourceId": {
          "description": "Required. The full resource name of the deployed GCP resource. Example: projects/my-project/locations/us-central1-a/instances/my-instance",
          "type": "string"
        },
        "project": {
          "description": "Optional. The project ID of the deployed resource.",
          "type": "string"
        },
        "location": {
          "description": "Optional. The location of the deployed resource.",
          "type": "string"
        }
      }
    },
    "ListLocationsResponse": {
      "id": "ListLocationsResponse",
      "description": "The response message for Locations.ListLocations.",
      "type": "object",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Location"
          }
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      }
    },
    "Location": {
      "id": "Location",
      "description": "A resource that represents a Google Cloud location.",
      "type": "object",
      "properties": {
        "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"
        },
        "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."
          }
        }
      }
    },
    "SetIamPolicyRequest": {
      "id": "SetIamPolicyRequest",
      "description": "Request message for `SetIamPolicy` method.",
      "type": "object",
      "properties": {
        "policy": {
          "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them.",
          "$ref": "Policy"
        },
        "updateMask": {
          "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",
          "format": "google-fieldmask"
        }
      }
    },
    "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": {
          "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",
          "format": "int32"
        },
        "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"
          }
        },
        "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"
        }
      }
    },
    "Binding": {
      "id": "Binding",
      "description": "Associates `members`, or principals, with a `role`.",
      "type": "object",
      "properties": {
        "role": {
          "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).",
          "type": "string"
        },
        "members": {
          "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"
          }
        },
        "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"
        }
      }
    },
    "Expr": {
      "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",
      "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"
        }
      }
    },
    "AuditConfig": {
      "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",
      "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"
          }
        }
      }
    },
    "AuditLogConfig": {
      "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",
      "properties": {
        "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"
          ]
        },
        "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"
          }
        }
      }
    },
    "TestIamPermissionsRequest": {
      "id": "TestIamPermissionsRequest",
      "description": "Request message for `TestIamPermissions` method.",
      "type": "object",
      "properties": {
        "permissions": {
          "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",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "TestIamPermissionsResponse": {
      "id": "TestIamPermissionsResponse",
      "description": "Response message for `TestIamPermissions` method.",
      "type": "object",
      "properties": {
        "permissions": {
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "deploymentMetadata": {
          "description": "Output only. The application deployment metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "DeploymentOperationMetadata"
        },
        "previewMetadata": {
          "description": "Output only. The application preview metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "PreviewOperationMetadata"
        },
        "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"
        },
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. The server defined resource path for the target of the operation.",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by 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"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "DeploymentOperationMetadata": {
      "id": "DeploymentOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the deployment operation.",
      "type": "object",
      "properties": {
        "deployment": {
          "description": "Output only. The name of the deployment associated with the application.",
          "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"
        },
        "deploymentBuild": {
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentLogs": {
          "description": "Output only. Location of the deployment operation logs in `gs://{bucket}/{object}` format.",
          "readOnly": true,
          "type": "string"
        },
        "resources": {
          "description": "Details of the Resourcess in the deployment.",
          "type": "array",
          "items": {
            "$ref": "Resource"
          }
        },
        "previousAttempt": {
          "description": "Previous deployment attempt metadata.",
          "$ref": "DeploymentAttemptMetadata"
        }
      }
    },
    "Resource": {
      "id": "Resource",
      "description": "Status of the Resourcess in the deployment.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. Identifier. The name of the resource.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. The type 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"
          ]
        }
      }
    },
    "DeploymentAttemptMetadata": {
      "id": "DeploymentAttemptMetadata",
      "description": "DeploymentAttemptMetadata represents a previous deployment attempt for an operation that failed due to a retryable error.",
      "type": "object",
      "properties": {
        "attempt": {
          "description": "The sequential number of the attempt (starting from 1).",
          "type": "integer",
          "format": "int32"
        },
        "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"
        }
      }
    },
    "PreviewOperationMetadata": {
      "id": "PreviewOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the preview operation.",
      "type": "object",
      "properties": {
        "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"
        },
        "previewBuild": {
          "description": "Output only. Cloud Build instance UUID associated with the preview operation.",
          "readOnly": true,
          "type": "string"
        },
        "previewLogs": {
          "description": "Output only. Location of the preview operation logs in `gs://{bucket}/{object}` format.",
          "readOnly": true,
          "type": "string"
        },
        "resources": {
          "description": "Details of the Resourcess in the deployment.",
          "type": "array",
          "items": {
            "$ref": "Resource"
          }
        }
      }
    },
    "ApplicationOperationMetadata": {
      "id": "ApplicationOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the delete operation.",
      "type": "object",
      "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"
        }
      }
    },
    "ProvisionDeploymentGroupOperationMetadata": {
      "id": "ProvisionDeploymentGroupOperationMetadata",
      "description": "Represents the Provision Deployment Group operation metadata.",
      "type": "object",
      "properties": {
        "deploymentStep": {
          "description": "Output only. Current step of deploying composite application",
          "readOnly": true,
          "type": "string",
          "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"
          ]
        },
        "deploymentUnitProgress": {
          "description": "Output only. List of deployment unit deployment progress",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DeploymentUnitProgress"
          }
        }
      }
    },
    "DeploymentUnitProgress": {
      "id": "DeploymentUnitProgress",
      "description": "Single deployment unit progress info",
      "type": "object",
      "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"
        },
        "deploymentUnitStep": {
          "description": "Output only. Current deployment unit step",
          "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"
        }
      }
    }
  },
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "ownerDomain": "google.com",
  "description": "Design and share deployable application architectures.",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "fetchFrameworks": {
              "id": "designcenter.projects.locations.fetchFrameworks",
              "path": "v1alpha/{+parent}:fetchFrameworks",
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}:fetchFrameworks",
              "httpMethod": "GET",
              "parameters": {
                "parent": {
                  "description": "Required. The parent resource name. Format: projects/{project}/locations/{location}",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "projects": {
                  "description": "Optional. Projects to fetch frameworks for. Format: projects/{project}",
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                  "location": "query",
                  "type": "string"
                },
                "filter": {
                  "description": "Optional. Filter for frameworks list.",
                  "location": "query",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "FetchFrameworksResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Fetches all frameworks for assessment report."
            },
            "list": {
              "id": "designcenter.projects.locations.list",
              "path": "v1alpha/{+name}/locations",
              "flatPath": "v1alpha/projects/{projectsId}/locations",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "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).",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "location": "query",
                  "type": "string"
                },
                "extraLocationTypes": {
                  "description": "Optional. Do not use this field. It is unsupported and is ignored unless explicitly documented otherwise. This is primarily for internal usage.",
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "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."
            },
            "get": {
              "id": "designcenter.projects.locations.get",
              "path": "v1alpha/{+name}",
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "Resource name for the location.",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Location"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Gets information about a location."
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "list": {
                  "id": "designcenter.projects.locations.operations.list",
                  "path": "v1alpha/{+name}/operations",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation's parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "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.",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`."
                },
                "get": {
                  "id": "designcenter.projects.locations.operations.get",
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service."
                },
                "delete": {
                  "id": "designcenter.projects.locations.operations.delete",
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be deleted.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`."
                },
                "cancel": {
                  "id": "designcenter.projects.locations.operations.cancel",
                  "path": "v1alpha/{+name}:cancel",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`."
                }
              }
            },
            "spaces": {
              "methods": {
                "get": {
                  "id": "designcenter.projects.locations.spaces.get",
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Space"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets details about a space."
                },
                "list": {
                  "id": "designcenter.projects.locations.spaces.list",
                  "path": "v1alpha/{+parent}/spaces",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces",
                  "httpMethod": "GET",
                  "parameters": {
                    "parent": {
                      "description": "Required. The name of the parent resource, for which spaces are listed.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Optional. The maximum number of pages to return from this request. If unspecified, the value automatically reflects the number of results returned.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "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.",
                      "location": "query",
                      "type": "string"
                    },
                    "filter": {
                      "description": "Optional. A filter that chooses which spaces to return.",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Optional. How the results are sorted.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListSpacesResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists spaces in a given project and location."
                },
                "create": {
                  "id": "designcenter.projects.locations.spaces.create",
                  "path": "v1alpha/{+parent}/spaces",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent in which to create a space.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "spaceId": {
                      "description": "Required. The ID of the space to create.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "Space"
                  },
                  "response": {
                    "$ref": "Space"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Creates a space."
                },
                "patch": {
                  "id": "designcenter.projects.locations.spaces.patch",
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "description": "Identifier. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "description": "Optional. The fields to overwrite in the space update. If you don't provide a mask, all fields are overwritten.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "Space"
                  },
                  "response": {
                    "$ref": "Space"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Updates a space."
                },
                "delete": {
                  "id": "designcenter.projects.locations.spaces.delete",
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "Required. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "force": {
                      "description": "Optional. If set to true, the space's children are also deleted. If false, the space is only deleted if it has no children.",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a space."
                },
                "generateAssessmentReport": {
                  "id": "designcenter.projects.locations.spaces.generateAssessmentReport",
                  "path": "v1alpha/{+spaceName}:generateAssessmentReport",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateAssessmentReport",
                  "httpMethod": "POST",
                  "parameters": {
                    "spaceName": {
                      "description": "Required. The name of the space at which Generate Assessment Report is called. Format: projects/$project/locations/$location/spaces/$space",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "spaceName"
                  ],
                  "request": {
                    "$ref": "GenerateAssessmentReportRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Generate a best practice report for a given Terraform plan."
                },
                "inferConnections": {
                  "id": "designcenter.projects.locations.spaces.inferConnections",
                  "path": "v1alpha/{+name}:inferConnections",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:inferConnections",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the space.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "InferConnectionsRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Infers and suggests connections between components within a space. The generated connection information can be used in application templates and designs."
                },
                "registerDeployedResources": {
                  "id": "designcenter.projects.locations.spaces.registerDeployedResources",
                  "path": "v1alpha/{+parent}:registerDeployedResources",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:registerDeployedResources",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent space. Format: projects/{project}/locations/{location}/spaces/{space}",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "RegisterDeployedResourcesRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Register deployed resources from terraform state file with App Hub."
                },
                "registerAppHubApplicationResources": {
                  "id": "designcenter.projects.locations.spaces.registerAppHubApplicationResources",
                  "path": "v1alpha/{+parent}/spaces:registerAppHubApplicationResources",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces:registerAppHubApplicationResources",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent location. Format: projects/{project}/locations/{location}",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "RegisterAppHubApplicationResourcesRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Register deployed resources from terraform state file with App Hub without needing a space."
                },
                "registerApphubResources": {
                  "id": "designcenter.projects.locations.spaces.registerApphubResources",
                  "path": "v1alpha/{+parent}:registerApphubResources",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:registerApphubResources",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent space. Format: projects/{project}/locations/{location}/spaces/{space}",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "RegisterApphubResourcesRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Registers a list of deployed GCP resources with App Hub."
                },
                "setIamPolicy": {
                  "id": "designcenter.projects.locations.spaces.setIamPolicy",
                  "path": "v1alpha/{+resource}:setIamPolicy",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:setIamPolicy",
                  "httpMethod": "POST",
                  "parameters": {
                    "resource": {
                      "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "request": {
                    "$ref": "SetIamPolicyRequest"
                  },
                  "response": {
                    "$ref": "Policy"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors."
                },
                "getIamPolicy": {
                  "id": "designcenter.projects.locations.spaces.getIamPolicy",
                  "path": "v1alpha/{+resource}:getIamPolicy",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:getIamPolicy",
                  "httpMethod": "GET",
                  "parameters": {
                    "resource": {
                      "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "options.requestedPolicyVersion": {
                      "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).",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    }
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "response": {
                    "$ref": "Policy"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set."
                },
                "testIamPermissions": {
                  "id": "designcenter.projects.locations.spaces.testIamPermissions",
                  "path": "v1alpha/{+resource}:testIamPermissions",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:testIamPermissions",
                  "httpMethod": "POST",
                  "parameters": {
                    "resource": {
                      "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "request": {
                    "$ref": "TestIamPermissionsRequest"
                  },
                  "response": {
                    "$ref": "TestIamPermissionsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning."
                }
              },
              "resources": {
                "applicationTemplates": {
                  "methods": {
                    "get": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.get",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. The application template name.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details about an application template."
                    },
                    "list": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.list",
                      "path": "v1alpha/{+parent}/applicationTemplates",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent resource from which to list application templates.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "pageToken": {
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which shared template revisions to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListApplicationTemplatesResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Lists application templates in a given space."
                    },
                    "create": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.create",
                      "path": "v1alpha/{+parent}/applicationTemplates",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "httpMethod": "POST",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent resource in which to create the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "applicationTemplateId": {
                          "description": "Required. The ID of the application template to create.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Creates an application template."
                    },
                    "patch": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.patch",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "httpMethod": "PATCH",
                      "parameters": {
                        "name": {
                          "description": "Identifier. Application template name.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "updateMask": {
                          "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.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Updates an application template."
                    },
                    "import": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.import",
                      "path": "v1alpha/{+name}:import",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:import",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ImportApplicationTemplateRequest"
                      },
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Imports to an existing application template from a given shared template."
                    },
                    "delete": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.delete",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "httpMethod": "DELETE",
                      "parameters": {
                        "name": {
                          "description": "Required. The application template name.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "force": {
                          "description": "Optional. If set to true, the application template's children are also deleted. If false, the application template is only deleted if it has no children.",
                          "location": "query",
                          "type": "boolean"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Empty"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deletes an application template."
                    },
                    "commit": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.commit",
                      "path": "v1alpha/{+name}:commit",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:commit",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "CommitApplicationTemplateRequest"
                      },
                      "response": {
                        "$ref": "ApplicationTemplateRevision"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Commits an application template to create a new revision."
                    },
                    "generate": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generate",
                      "path": "v1alpha/{+name}:generate",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generate",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GenerateApplicationTemplateIaCRequest"
                      },
                      "response": {
                        "$ref": "GenerateApplicationTemplateIaCResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Generates Terraform files for an application template."
                    },
                    "generateAssessmentReport": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generateAssessmentReport",
                      "path": "v1alpha/{+name}:generateAssessmentReport",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generateAssessmentReport",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The application template name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GenerateApplicationTemplateAssessmentReportRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Generate Assessment Reports of an application template."
                    },
                    "importIaC": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.importIaC",
                      "path": "v1alpha/{+name}:importIaC",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:importIaC",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ImportApplicationTemplateIaCRequest"
                      },
                      "response": {
                        "$ref": "ImportApplicationTemplateIaCResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Imports IaC for an application template."
                    }
                  },
                  "resources": {
                    "revisions": {
                      "methods": {
                        "generate": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.generate",
                          "path": "v1alpha/{+name}:generate",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:generate",
                          "httpMethod": "POST",
                          "parameters": {
                            "name": {
                              "description": "Required. The name of the application template revision.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCRequest"
                          },
                          "response": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Generates Terraform files for an application template revision."
                        },
                        "get": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.get",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "Required. The application template revision name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "ApplicationTemplateRevision"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets details about an application template revision."
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.list",
                          "path": "v1alpha/{+parent}/revisions",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent from which to list application template revisions.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which application template revisions to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListApplicationTemplateRevisionsResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists application template revisions in a given application template."
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.delete",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "httpMethod": "DELETE",
                          "parameters": {
                            "name": {
                              "description": "Required. The application template revision name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Empty"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes an application template revision."
                        }
                      }
                    },
                    "components": {
                      "methods": {
                        "get": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.get",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "Required. The component name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Component"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets details about a Component."
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.list",
                          "path": "v1alpha/{+parent}/components",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource from which the list of components is requested.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which components to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListComponentsResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists components in an application template."
                        },
                        "create": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.create",
                          "path": "v1alpha/{+parent}/components",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "httpMethod": "POST",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource in which to create the component.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "componentId": {
                              "description": "Required. The ID of the component to create.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "Component"
                          },
                          "response": {
                            "$ref": "Component"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Creates a component."
                        },
                        "patch": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.patch",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "httpMethod": "PATCH",
                          "parameters": {
                            "name": {
                              "description": "Identifier. The component name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "updateMask": {
                              "description": "Optional. The fields to overwrite in the component update. If you don't provide a mask, all fields are overwritten.",
                              "location": "query",
                              "type": "string",
                              "format": "google-fieldmask"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "Component"
                          },
                          "response": {
                            "$ref": "Component"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Updates a component."
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.delete",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "httpMethod": "DELETE",
                          "parameters": {
                            "name": {
                              "description": "Required. The component name.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "force": {
                              "description": "Optional. If set to true, the component's children are also deleted. If false, the component is only deleted if it has no children.",
                              "location": "query",
                              "type": "boolean"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Empty"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes a component."
                        }
                      },
                      "resources": {
                        "connections": {
                          "methods": {
                            "get": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.get",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "httpMethod": "GET",
                              "parameters": {
                                "name": {
                                  "description": "Required. Name of the resource",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "response": {
                                "$ref": "Connection"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Gets details about a connection."
                            },
                            "list": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.list",
                              "path": "v1alpha/{+parent}/connections",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "httpMethod": "GET",
                              "parameters": {
                                "parent": {
                                  "description": "Required. The parent resource from which to request a list of connections.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "pageSize": {
                                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                                  "location": "query",
                                  "type": "integer",
                                  "format": "int32"
                                },
                                "pageToken": {
                                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "filter": {
                                  "description": "Optional. A filter that chooses which connections to return.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "orderBy": {
                                  "description": "Optional. How the results should be sorted.",
                                  "location": "query",
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "response": {
                                "$ref": "ListConnectionsResponse"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Lists connections in an application template."
                            },
                            "create": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.create",
                              "path": "v1alpha/{+parent}/connections",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "httpMethod": "POST",
                              "parameters": {
                                "parent": {
                                  "description": "Required. The parent resource in which to create a connection.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "connectionId": {
                                  "description": "Required. The ID of the connection to create.",
                                  "location": "query",
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "request": {
                                "$ref": "Connection"
                              },
                              "response": {
                                "$ref": "Connection"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Creates a connection."
                            },
                            "patch": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.patch",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "httpMethod": "PATCH",
                              "parameters": {
                                "name": {
                                  "description": "Identifier. The connection name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "updateMask": {
                                  "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.",
                                  "location": "query",
                                  "type": "string",
                                  "format": "google-fieldmask"
                                }
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "request": {
                                "$ref": "Connection"
                              },
                              "response": {
                                "$ref": "Connection"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Updates a connection."
                            },
                            "delete": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.delete",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "httpMethod": "DELETE",
                              "parameters": {
                                "name": {
                                  "description": "Required. The connection name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "response": {
                                "$ref": "Empty"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Deletes a connection."
                            }
                          }
                        }
                      }
                    },
                    "policies": {
                      "methods": {
                        "get": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.get",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "Required. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Policy related APIs. Get a policy for an application template."
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.list",
                          "path": "v1alpha/{+parent}/policies",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent application template from which policies are listed in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "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.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which policies to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListPoliciesResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "List policies for an application template."
                        },
                        "create": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.create",
                          "path": "v1alpha/{+parent}/policies",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "httpMethod": "POST",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource in which to create the policy in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "policyId": {
                              "description": "Required. The ID of the policy to create.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Creates a policy for an application template."
                        },
                        "patch": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.patch",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "httpMethod": "PATCH",
                          "parameters": {
                            "name": {
                              "description": "Identifier. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "updateMask": {
                              "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.",
                              "location": "query",
                              "type": "string",
                              "format": "google-fieldmask"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Updates a policy."
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.delete",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "httpMethod": "DELETE",
                          "parameters": {
                            "name": {
                              "description": "Required. The policy name in the following format: projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Empty"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes a policy."
                        }
                      }
                    },
                    "systemRevisions": {
                      "methods": {
                        "list": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.list",
                          "path": "v1alpha/{+parent}/systemRevisions",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent Application Template from which to list the system revisions. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of system revisions to return. The service may return fewer than this value. If unspecified, at most 50 system revisions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter expression that filters system revisions listed in the response. See https://google.aip.dev/160 for more information on the grammar.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListApplicationTemplateSystemRevisionsResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists application template system revisions in a given application template."
                        },
                        "get": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.get",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions/{systemRevisionsId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "Required. The name of the ApplicationTemplateSystemRevision to retrieve. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/systemRevisions/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "ApplicationTemplateSystemRevision"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets the given application template system revision."
                        }
                      }
                    }
                  }
                },
                "catalogs": {
                  "methods": {
                    "get": {
                      "id": "designcenter.projects.locations.spaces.catalogs.get",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Catalog"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details about a catalog."
                    },
                    "list": {
                      "id": "designcenter.projects.locations.spaces.catalogs.list",
                      "path": "v1alpha/{+parent}/catalogs",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent space from which catalogs are listed. Format: projects/$project/locations/$location/spaces/$space",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "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.",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which catalogs to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListCatalogsResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Lists catalogs in a given space."
                    },
                    "create": {
                      "id": "designcenter.projects.locations.spaces.catalogs.create",
                      "path": "v1alpha/{+parent}/catalogs",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "httpMethod": "POST",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent space in which a catalog is created in the following format: projects/$project/locations/$location/spaces/$space",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "catalogId": {
                          "description": "Required. The ID of the catalog to create.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "Catalog"
                      },
                      "response": {
                        "$ref": "Catalog"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Creates a catalog."
                    },
                    "patch": {
                      "id": "designcenter.projects.locations.spaces.catalogs.patch",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "httpMethod": "PATCH",
                      "parameters": {
                        "name": {
                          "description": "Identifier. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "updateMask": {
                          "description": "Optional. The fields to overwrite in the catalog update. If you don't provide a mask, all fields are overwritten.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "Catalog"
                      },
                      "response": {
                        "$ref": "Catalog"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Updates a catalog."
                    },
                    "delete": {
                      "id": "designcenter.projects.locations.spaces.catalogs.delete",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "httpMethod": "DELETE",
                      "parameters": {
                        "name": {
                          "description": "Required. The catalog name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "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.",
                          "location": "query",
                          "type": "boolean"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deletes a catalog."
                    }
                  },
                  "resources": {
                    "templates": {
                      "methods": {
                        "create": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.create",
                          "path": "v1alpha/{+parent}/templates",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "httpMethod": "POST",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource in which the catalog template is created.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "catalogTemplateId": {
                              "description": "Required. The ID of the catalog template to create. The ID is appended to the catalog template's name.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Adds a template to a catalog."
                        },
                        "get": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.get",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "Required. The catalog template name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets a catalog template."
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.list",
                          "path": "v1alpha/{+parent}/templates",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent from which the catalog templates are listed in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses the catalog templates to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListCatalogTemplatesResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists catalog templates."
                        },
                        "patch": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.patch",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "httpMethod": "PATCH",
                          "parameters": {
                            "name": {
                              "description": "Identifier. The catalog template name in following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "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.",
                              "location": "query",
                              "type": "string",
                              "format": "google-fieldmask"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Updates a catalog template resource."
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.delete",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "httpMethod": "DELETE",
                          "parameters": {
                            "name": {
                              "description": "Required. The catalog template name. Format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "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.",
                              "location": "query",
                              "type": "boolean"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Operation"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes a catalog template."
                        }
                      },
                      "resources": {
                        "revisions": {
                          "methods": {
                            "create": {
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.create",
                              "path": "v1alpha/{+parent}/revisions",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "httpMethod": "POST",
                              "parameters": {
                                "parent": {
                                  "description": "Required. The parent in which the catalog template revisions request is created in following format: projects/$project/locations/$location/spaces/$space/templates/$template",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "catalogTemplateRevisionId": {
                                  "description": "Required. The ID of the template revision to create.",
                                  "location": "query",
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "request": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "response": {
                                "$ref": "Operation"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Creates a template revision."
                            },
                            "get": {
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.get",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "httpMethod": "GET",
                              "parameters": {
                                "name": {
                                  "description": "Required. The catalog template revisions name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "response": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Gets details about a template revision."
                            },
                            "list": {
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.list",
                              "path": "v1alpha/{+parent}/revisions",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "httpMethod": "GET",
                              "parameters": {
                                "parent": {
                                  "description": "Required. The parent resource from which a list of catalog template revisions is requested.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "pageSize": {
                                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                                  "location": "query",
                                  "type": "integer",
                                  "format": "int32"
                                },
                                "pageToken": {
                                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "filter": {
                                  "description": "Optional. A filter that chooses which catalog template revisions to return.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "orderBy": {
                                  "description": "Optional. How the results should be sorted.",
                                  "location": "query",
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "response": {
                                "$ref": "ListCatalogTemplateRevisionsResponse"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Lists template revisions."
                            },
                            "delete": {
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.delete",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "httpMethod": "DELETE",
                              "parameters": {
                                "name": {
                                  "description": "Required. The template revision name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "response": {
                                "$ref": "Operation"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "description": "Deletes a template revision."
                            }
                          }
                        }
                      }
                    },
                    "shares": {
                      "methods": {
                        "create": {
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.create",
                          "path": "v1alpha/{+parent}/shares",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "httpMethod": "POST",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource in which shares are created.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "shareId": {
                              "description": "Required. The ID of the share to create.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "request": {
                            "$ref": "Share"
                          },
                          "response": {
                            "$ref": "Operation"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Shares a catalog from one space to another space."
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.list",
                          "path": "v1alpha/{+parent}/shares",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource from which a list of shares is requested.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListSharesResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists catalog share objects for the space."
                        },
                        "get": {
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.get",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "Required. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Share"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Get catalog share object for the space."
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.delete",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "httpMethod": "DELETE",
                          "parameters": {
                            "name": {
                              "description": "Required. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Operation"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes a catalog share."
                        },
                        "sync": {
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.sync",
                          "path": "v1alpha/{+name}:sync",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}:sync",
                          "httpMethod": "POST",
                          "parameters": {
                            "name": {
                              "description": "Required. The share name in the following format: projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "request": {
                            "$ref": "SyncShareRequest"
                          },
                          "response": {
                            "$ref": "Operation"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Synchronizes a share and updates the destination workspace to reflect. reflect the most recent changes to the catalog."
                        }
                      }
                    }
                  }
                },
                "sharedTemplates": {
                  "methods": {
                    "get": {
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.get",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. The shared template name. Format: projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "SharedTemplate"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details about a shared template."
                    },
                    "list": {
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.list",
                      "path": "v1alpha/{+parent}/sharedTemplates",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates",
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent space for which shared templates are listed in the following format: projects/$project/locations/$location/spaces/$space",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "pageToken": {
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which shared templates to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListSharedTemplatesResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Lists shared templates in a given space."
                    }
                  },
                  "resources": {
                    "revisions": {
                      "methods": {
                        "get": {
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.get",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions/{revisionsId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "Required. The shared template revision name, in the following format: projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate/revisions/$revision",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "SharedTemplateRevision"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets details about a shared template revision."
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.list",
                          "path": "v1alpha/{+parent}/revisions",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource from which to list shared template revisions, in the following format: projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which shared template revisions to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListSharedTemplateRevisionsResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists shared template revisions in a given space."
                        }
                      }
                    }
                  }
                },
                "applications": {
                  "methods": {
                    "create": {
                      "id": "designcenter.projects.locations.spaces.applications.create",
                      "path": "v1alpha/{+parent}/applications",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "httpMethod": "POST",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent resource in which to create the application. Format: projects/$project/locations/$location/spaces/$space",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "applicationId": {
                          "description": "Required. The ID of the application to create.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "Application"
                      },
                      "response": {
                        "$ref": "Application"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Creates an application."
                    },
                    "get": {
                      "id": "designcenter.projects.locations.spaces.applications.get",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Application"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details about an application."
                    },
                    "list": {
                      "id": "designcenter.projects.locations.spaces.applications.list",
                      "path": "v1alpha/{+parent}/applications",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent resource from which to request a list of applications.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "pageToken": {
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which applications to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListApplicationsResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Lists applications in a given space."
                    },
                    "patch": {
                      "id": "designcenter.projects.locations.spaces.applications.patch",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "httpMethod": "PATCH",
                      "parameters": {
                        "name": {
                          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "updateMask": {
                          "description": "Optional. The fields to overwrite in the application update. If you don't provide a mask, all fields are overwritten.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "Application"
                      },
                      "response": {
                        "$ref": "Application"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Updates an application."
                    },
                    "delete": {
                      "id": "designcenter.projects.locations.spaces.applications.delete",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "httpMethod": "DELETE",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "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.",
                          "location": "query",
                          "type": "boolean"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deletes an application."
                    },
                    "deploy": {
                      "id": "designcenter.projects.locations.spaces.applications.deploy",
                      "path": "v1alpha/{+name}:deploy",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:deploy",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "DeployApplicationRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deploys an application."
                    },
                    "preview": {
                      "id": "designcenter.projects.locations.spaces.applications.preview",
                      "path": "v1alpha/{+name}:preview",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:preview",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name in the following format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "PreviewApplicationRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Previews deployment of an application."
                    },
                    "fetchAssessmentReport": {
                      "id": "designcenter.projects.locations.spaces.applications.fetchAssessmentReport",
                      "path": "v1alpha/{+name}:fetchAssessmentReport",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:fetchAssessmentReport",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. The application name in the following format: projects/$project/locations/$location/spaces/$space/applications/$application",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "FetchApplicationAssessmentReportResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Fetches the assessment report of a deployed application if present."
                    },
                    "generate": {
                      "id": "designcenter.projects.locations.spaces.applications.generate",
                      "path": "v1alpha/{+name}:generate",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generate",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GenerateApplicationIaCRequest"
                      },
                      "response": {
                        "$ref": "GenerateApplicationIaCResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Generates Terraform files for an application."
                    },
                    "importIaC": {
                      "id": "designcenter.projects.locations.spaces.applications.importIaC",
                      "path": "v1alpha/{+name}:importIaC",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:importIaC",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "ImportApplicationIaCRequest"
                      },
                      "response": {
                        "$ref": "ImportApplicationIaCResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Imports IaC for an application resource."
                    },
                    "register": {
                      "id": "designcenter.projects.locations.spaces.applications.register",
                      "path": "v1alpha/{+name}:register",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:register",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "RegisterDeployedApplicationRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Register deployed application from terraform state file with App Hub."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "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"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "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.",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "quotaUser": {
      "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.",
      "location": "query"
    },
    "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"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    }
  },
  "id": "designcenter:v1alpha",
  "ownerName": "Google",
  "basePath": "",
  "version_module": true,
  "revision": "20260401",
  "baseUrl": "https://designcenter.googleapis.com/",
  "servicePath": "",
  "mtlsRootUrl": "https://designcenter.mtls.googleapis.com/",
  "name": "designcenter",
  "fullyEncodeReservedExpansion": true,
  "rootUrl": "https://designcenter.googleapis.com/",
  "batchPath": "batch",
  "discoveryVersion": "v1",
  "protocol": "rest",
  "documentationLink": "http://cloud.google.com/application-design-center/docs",
  "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."
        }
      }
    }
  },
  "version": "v1alpha",
  "kind": "discovery#restDescription",
  "canonicalName": "Application Design Center",
  "title": "Design Center API"
}
