{
  "description": "Design and share deployable application architectures.",
  "parameters": {
    "alt": {
      "description": "Data format for response.",
      "type": "string",
      "location": "query",
      "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"
      ]
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "key": {
      "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",
      "type": "string"
    },
    "prettyPrint": {
      "location": "query",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true"
    },
    "callback": {
      "type": "string",
      "location": "query",
      "description": "JSONP"
    },
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "access_token": {
      "description": "OAuth access token.",
      "type": "string",
      "location": "query"
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "type": "string",
      "location": "query"
    },
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string",
      "description": "V1 error format."
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    }
  },
  "version_module": true,
  "rootUrl": "https://designcenter.googleapis.com/",
  "batchPath": "batch",
  "fullyEncodeReservedExpansion": true,
  "baseUrl": "https://designcenter.googleapis.com/",
  "version": "v1alpha",
  "servicePath": "",
  "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."
        }
      }
    }
  },
  "ownerName": "Google",
  "revision": "20260715",
  "id": "designcenter:v1alpha",
  "protocol": "rest",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "get": {
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "path": "v1alpha/{+name}",
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}",
              "parameters": {
                "name": {
                  "location": "path",
                  "type": "string",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "description": "Resource name for the location.",
                  "required": true
                }
              },
              "description": "Gets information about a location.",
              "id": "designcenter.projects.locations.get",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "Location"
              }
            },
            "list": {
              "parameters": {
                "filter": {
                  "location": "query",
                  "type": "string",
                  "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)."
                },
                "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"
                },
                "name": {
                  "required": true,
                  "pattern": "^projects/[^/]+$",
                  "description": "The resource that owns the locations collection, if applicable.",
                  "location": "path",
                  "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"
                },
                "extraLocationTypes": {
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "type": "string",
                  "location": "query",
                  "repeated": true
                }
              },
              "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.",
              "id": "designcenter.projects.locations.list",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "path": "v1alpha/{+name}/locations",
              "flatPath": "v1alpha/projects/{projectsId}/locations"
            },
            "fetchFrameworks": {
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}:fetchFrameworks",
              "path": "v1alpha/{+parent}:fetchFrameworks",
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "GET",
              "response": {
                "$ref": "FetchFrameworksResponse"
              },
              "id": "designcenter.projects.locations.fetchFrameworks",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "filter": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. Filter for frameworks list."
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                },
                "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"
                },
                "parent": {
                  "location": "path",
                  "type": "string",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "description": "Required. The parent resource name. Format: projects/{project}/locations/{location}",
                  "required": true
                }
              },
              "description": "Fetches all frameworks for assessment report."
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "cancel": {
                  "path": "v1alpha/{+name}:cancel",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Empty"
                  },
                  "id": "designcenter.projects.locations.operations.cancel",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$"
                    }
                  },
                  "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`."
                },
                "get": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "description": "The name of the operation resource.",
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "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.",
                  "id": "designcenter.projects.locations.operations.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "list": {
                  "id": "designcenter.projects.locations.operations.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "filter": {
                      "type": "string",
                      "location": "query",
                      "description": "The standard list filter."
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "required": true,
                      "description": "The name of the operation's parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "returnPartialSuccess": {
                      "location": "query",
                      "type": "boolean",
                      "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation."
                    }
                  },
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "httpMethod": "GET",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations",
                  "path": "v1alpha/{+name}/operations",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "delete": {
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Empty"
                  },
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "The name of the operation resource to be deleted.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true
                    }
                  },
                  "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`.",
                  "id": "designcenter.projects.locations.operations.delete",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "spaces": {
              "methods": {
                "setIamPolicy": {
                  "id": "designcenter.projects.locations.spaces.setIamPolicy",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "resource": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "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/[^/]+$"
                    }
                  },
                  "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
                  "response": {
                    "$ref": "Policy"
                  },
                  "httpMethod": "POST",
                  "path": "v1alpha/{+resource}:setIamPolicy",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:setIamPolicy",
                  "request": {
                    "$ref": "SetIamPolicyRequest"
                  },
                  "parameterOrder": [
                    "resource"
                  ]
                },
                "generateAssessmentReport": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "spaceName": {
                      "required": true,
                      "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/[^/]+$",
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "description": "Deprecated: Use GenerateTerraformPlanAssessmentReport instead. Generate a best practice report for a given Terraform plan.",
                  "id": "designcenter.projects.locations.spaces.generateAssessmentReport",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "spaceName"
                  ],
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateAssessmentReport",
                  "request": {
                    "$ref": "GenerateAssessmentReportRequest"
                  },
                  "deprecated": true,
                  "path": "v1alpha/{+spaceName}:generateAssessmentReport",
                  "httpMethod": "POST"
                },
                "registerApphubResources": {
                  "id": "designcenter.projects.locations.spaces.registerApphubResources",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "parent": {
                      "required": true,
                      "description": "Required. The parent space. Format: projects/{project}/locations/{location}/spaces/{space}",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "description": "Registers a list of deployed GCP resources with App Hub.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "POST",
                  "path": "v1alpha/{+parent}:registerApphubResources",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:registerApphubResources",
                  "request": {
                    "$ref": "RegisterApphubResourcesRequest"
                  },
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "list": {
                  "response": {
                    "$ref": "ListSpacesResponse"
                  },
                  "id": "designcenter.projects.locations.spaces.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "pageToken": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. If present, retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                    },
                    "orderBy": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. How the results are sorted."
                    },
                    "filter": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. A filter that chooses which spaces to return."
                    },
                    "parent": {
                      "description": "Required. The name of the parent resource, for which spaces are listed.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    },
                    "pageSize": {
                      "location": "query",
                      "type": "integer",
                      "format": "int32",
                      "description": "Optional. The maximum number of pages to return from this request. If unspecified, the value automatically reflects the number of results returned."
                    }
                  },
                  "description": "Lists spaces in a given project and location.",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces",
                  "path": "v1alpha/{+parent}/spaces",
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET"
                },
                "delete": {
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "parameters": {
                    "name": {
                      "description": "Required. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    },
                    "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"
                    }
                  },
                  "description": "Deletes a space.",
                  "id": "designcenter.projects.locations.spaces.delete",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Empty"
                  }
                },
                "get": {
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "description": "Required. The space name."
                    }
                  },
                  "description": "Gets details about a space.",
                  "id": "designcenter.projects.locations.spaces.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Space"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "path": "v1alpha/{+name}"
                },
                "registerAppHubApplicationResources": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces:registerAppHubApplicationResources",
                  "request": {
                    "$ref": "RegisterAppHubApplicationResourcesRequest"
                  },
                  "path": "v1alpha/{+parent}/spaces:registerAppHubApplicationResources",
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. The parent location. Format: projects/{project}/locations/{location}",
                      "required": true
                    }
                  },
                  "description": "Register deployed resources from terraform state file with App Hub without needing a space.",
                  "id": "designcenter.projects.locations.spaces.registerAppHubApplicationResources",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "inferConnections": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "name": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "Required. The name of the space.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    }
                  },
                  "description": "Infers and suggests connections between components within a space. The generated connection information can be used in application templates and designs.",
                  "id": "designcenter.projects.locations.spaces.inferConnections",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:inferConnections",
                  "request": {
                    "$ref": "InferConnectionsRequest"
                  },
                  "path": "v1alpha/{+name}:inferConnections",
                  "httpMethod": "POST"
                },
                "generateTerraformPlanAssessmentReport": {
                  "path": "v1alpha/{+name}:generateTerraformPlanAssessmentReport",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateTerraformPlanAssessmentReport",
                  "request": {
                    "$ref": "GenerateTerraformPlanAssessmentReportRequest"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "designcenter.projects.locations.spaces.generateTerraformPlanAssessmentReport",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The parent resource in which to generate the assessment report. Format: projects/$project/locations/$location/spaces/$space",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "description": "Generate a Terraform plan assessment report for a given Terraform plan."
                },
                "getIamPolicy": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "resource"
                  ],
                  "path": "v1alpha/{+resource}:getIamPolicy",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:getIamPolicy",
                  "parameters": {
                    "resource": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "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/[^/]+$"
                    },
                    "options.requestedPolicyVersion": {
                      "location": "query",
                      "type": "integer",
                      "format": "int32",
                      "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)."
                    }
                  },
                  "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
                  "id": "designcenter.projects.locations.spaces.getIamPolicy",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Policy"
                  }
                },
                "create": {
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha/{+parent}/spaces",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces",
                  "request": {
                    "$ref": "Space"
                  },
                  "parameters": {
                    "parent": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. The parent in which to create a space.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true
                    },
                    "spaceId": {
                      "description": "Required. The ID of the space to create.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "description": "Creates a space.",
                  "id": "designcenter.projects.locations.spaces.create",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Space"
                  }
                },
                "registerDeployedResources": {
                  "path": "v1alpha/{+parent}:registerDeployedResources",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:registerDeployedResources",
                  "request": {
                    "$ref": "RegisterDeployedResourcesRequest"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "designcenter.projects.locations.spaces.registerDeployedResources",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "description": "Required. The parent space. Format: projects/{project}/locations/{location}/spaces/{space}",
                      "required": true
                    }
                  },
                  "description": "Register deployed resources from terraform state file with App Hub."
                },
                "patch": {
                  "id": "designcenter.projects.locations.spaces.patch",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Identifier. The space name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true
                    },
                    "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"
                    }
                  },
                  "description": "Updates a space.",
                  "response": {
                    "$ref": "Space"
                  },
                  "httpMethod": "PATCH",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "request": {
                    "$ref": "Space"
                  },
                  "path": "v1alpha/{+name}",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "testIamPermissions": {
                  "parameters": {
                    "resource": {
                      "type": "string",
                      "location": "path",
                      "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "required": true
                    }
                  },
                  "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.",
                  "id": "designcenter.projects.locations.spaces.testIamPermissions",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "TestIamPermissionsResponse"
                  },
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "resource"
                  ],
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:testIamPermissions",
                  "request": {
                    "$ref": "TestIamPermissionsRequest"
                  },
                  "path": "v1alpha/{+resource}:testIamPermissions"
                }
              },
              "resources": {
                "applicationTemplates": {
                  "methods": {
                    "import": {
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:import",
                      "request": {
                        "$ref": "ImportApplicationTemplateRequest"
                      },
                      "path": "v1alpha/{+name}:import",
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameters": {
                        "name": {
                          "type": "string",
                          "location": "path",
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "required": true
                        }
                      },
                      "description": "Imports to an existing application template from a given shared template.",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.import",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "snapshot": {
                      "response": {
                        "$ref": "Operation"
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.snapshot",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "description": "Required. The name of the application template.",
                          "location": "path",
                          "type": "string"
                        }
                      },
                      "description": "Snapshots an application template to create a new revision asynchronously.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:snapshot",
                      "request": {
                        "$ref": "SnapshotApplicationTemplateRequest"
                      },
                      "path": "v1alpha/{+name}:snapshot",
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "POST"
                    },
                    "commit": {
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}:commit",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:commit",
                      "request": {
                        "$ref": "CommitApplicationTemplateRequest"
                      },
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "ApplicationTemplateRevision"
                      },
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "description": "Required. The name of the application template.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "description": "Commits an application template to create a new revision.",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.commit",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "generateAssessmentReport": {
                      "httpMethod": "POST",
                      "path": "v1alpha/{+name}:generateAssessmentReport",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generateAssessmentReport",
                      "request": {
                        "$ref": "GenerateApplicationTemplateAssessmentReportRequest"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generateAssessmentReport",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "type": "string",
                          "location": "path",
                          "description": "Required. The application template name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "required": true
                        }
                      },
                      "description": "Generate Assessment Reports of an application template.",
                      "response": {
                        "$ref": "Operation"
                      }
                    },
                    "importIaC": {
                      "response": {
                        "$ref": "ImportApplicationTemplateIaCResponse"
                      },
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "description": "Required. The name of the application template."
                        }
                      },
                      "description": "Imports IaC for an application template.",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.importIaC",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}:importIaC",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:importIaC",
                      "request": {
                        "$ref": "ImportApplicationTemplateIaCRequest"
                      },
                      "httpMethod": "POST"
                    },
                    "get": {
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "description": "Required. The application template name."
                        }
                      },
                      "description": "Gets details about an application template.",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.get",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "path": "v1alpha/{+name}",
                      "httpMethod": "GET"
                    },
                    "patch": {
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameters": {
                        "name": {
                          "required": true,
                          "description": "Identifier. Application template name.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "type": "string",
                          "location": "path"
                        },
                        "updateMask": {
                          "type": "string",
                          "format": "google-fieldmask",
                          "location": "query",
                          "description": "Optional. The fields to overwrite in the application template update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten."
                        }
                      },
                      "description": "Updates an application template.",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.patch",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "httpMethod": "PATCH"
                    },
                    "create": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.create",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "parent": {
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "description": "Required. The parent resource in which to create the application template.",
                          "required": true
                        },
                        "applicationTemplateId": {
                          "location": "query",
                          "type": "string",
                          "description": "Required. The ID of the application template to create."
                        }
                      },
                      "description": "Creates an application template.",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "httpMethod": "POST",
                      "path": "v1alpha/{+parent}/applicationTemplates",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "parameterOrder": [
                        "parent"
                      ]
                    },
                    "list": {
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "parent"
                      ],
                      "path": "v1alpha/{+parent}/applicationTemplates",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "parameters": {
                        "pageToken": {
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                          "type": "string",
                          "location": "query"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "type": "string",
                          "location": "query"
                        },
                        "filter": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. A filter that chooses which shared template revisions to return."
                        },
                        "parent": {
                          "description": "Required. The parent resource from which to list application templates.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "type": "string",
                          "location": "path",
                          "required": true
                        },
                        "pageSize": {
                          "location": "query",
                          "type": "integer",
                          "format": "int32",
                          "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available."
                        }
                      },
                      "description": "Lists application templates in a given space.",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ListApplicationTemplatesResponse"
                      }
                    },
                    "delete": {
                      "httpMethod": "DELETE",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "path": "v1alpha/{+name}",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.delete",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "description": "Required. The application template name.",
                          "required": true
                        },
                        "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"
                        }
                      },
                      "description": "Deletes an application template.",
                      "response": {
                        "$ref": "Empty"
                      }
                    },
                    "generate": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generate",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "description": "Required. The name of the application template."
                        }
                      },
                      "description": "Generates Terraform files for an application template. This is a SYNCHRONOUS operation and returns the generated IaC directly in the response. It does NOT download external module sources; it only uses remote sources.",
                      "response": {
                        "$ref": "GenerateApplicationTemplateIaCResponse"
                      },
                      "httpMethod": "POST",
                      "path": "v1alpha/{+name}:generate",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generate",
                      "request": {
                        "$ref": "GenerateApplicationTemplateIaCRequest"
                      },
                      "parameterOrder": [
                        "name"
                      ]
                    }
                  },
                  "resources": {
                    "policies": {
                      "methods": {
                        "patch": {
                          "httpMethod": "PATCH",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.patch",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "description": "Identifier. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
                              "location": "path",
                              "type": "string",
                              "required": true
                            },
                            "updateMask": {
                              "type": "string",
                              "format": "google-fieldmask",
                              "location": "query",
                              "description": "Optional. The fields to overwrite in the policy update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten."
                            }
                          },
                          "description": "Updates a policy.",
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          }
                        },
                        "get": {
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "path": "v1alpha/{+name}",
                          "parameterOrder": [
                            "name"
                          ],
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.get",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "required": true,
                              "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/[^/]+$",
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "description": "Policy related APIs. Get a policy for an application template."
                        },
                        "list": {
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "path": "v1alpha/{+parent}/policies",
                          "parameterOrder": [
                            "parent"
                          ],
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "ListPoliciesResponse"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.list",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "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/[^/]+$"
                            },
                            "pageSize": {
                              "location": "query",
                              "type": "integer",
                              "format": "int32",
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available."
                            },
                            "pageToken": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. If present, retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which policies to return.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "description": "Lists policies for an application template."
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.delete",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "required": true,
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "description": "Required. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`"
                            }
                          },
                          "description": "Deletes a policy.",
                          "response": {
                            "$ref": "Empty"
                          },
                          "httpMethod": "DELETE",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "path": "v1alpha/{+name}",
                          "parameterOrder": [
                            "name"
                          ]
                        },
                        "create": {
                          "parameterOrder": [
                            "parent"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "path": "v1alpha/{+parent}/policies",
                          "httpMethod": "POST",
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "parameters": {
                            "policyId": {
                              "description": "Required. The ID of the policy to create.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "required": true,
                              "description": "Required. The parent resource in which to create the policy in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "description": "Creates a policy for an application template.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.create",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        }
                      }
                    },
                    "systemRevisions": {
                      "methods": {
                        "get": {
                          "response": {
                            "$ref": "ApplicationTemplateSystemRevision"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.get",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "required": true,
                              "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/[^/]+$",
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "description": "Gets the given application template system revision.",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions/{systemRevisionsId}",
                          "path": "v1alpha/{+name}",
                          "parameterOrder": [
                            "name"
                          ],
                          "httpMethod": "GET"
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.list",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "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"
                            },
                            "filter": {
                              "description": "Optional. A filter expression that filters system revisions listed in the response. See https://google.aip.dev/160 for more information on the grammar.",
                              "type": "string",
                              "location": "query"
                            },
                            "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/[^/]+$",
                              "type": "string",
                              "location": "path",
                              "required": true
                            },
                            "pageToken": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                            }
                          },
                          "description": "Lists application template system revisions in a given application template.",
                          "response": {
                            "$ref": "ListApplicationTemplateSystemRevisionsResponse"
                          },
                          "httpMethod": "GET",
                          "path": "v1alpha/{+parent}/systemRevisions",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions",
                          "parameterOrder": [
                            "parent"
                          ]
                        }
                      }
                    },
                    "revisions": {
                      "methods": {
                        "generate": {
                          "parameterOrder": [
                            "name"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:generate",
                          "request": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCRequest"
                          },
                          "path": "v1alpha/{+name}:generate",
                          "httpMethod": "POST",
                          "response": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCResponse"
                          },
                          "parameters": {
                            "name": {
                              "required": true,
                              "description": "Required. The name of the application template revision.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "description": "Generates Terraform files for an application template revision. This is a SYNCHRONOUS operation and returns the generated IaC directly in the response. It does NOT download external module sources; it only uses remote sources.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.generate",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "list": {
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "parent"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions",
                          "path": "v1alpha/{+parent}/revisions",
                          "parameters": {
                            "filter": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. A filter that chooses which application template revisions to return."
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "type": "string",
                              "location": "query"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "type": "string",
                              "location": "query"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "location": "query",
                              "type": "integer",
                              "format": "int32"
                            },
                            "parent": {
                              "required": true,
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "description": "Required. The parent from which to list application template revisions."
                            }
                          },
                          "description": "Lists application template revisions in a given application template.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.list",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "ListApplicationTemplateRevisionsResponse"
                          }
                        },
                        "delete": {
                          "parameterOrder": [
                            "name"
                          ],
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "httpMethod": "DELETE",
                          "response": {
                            "$ref": "Empty"
                          },
                          "parameters": {
                            "name": {
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "description": "Required. The application template revision name.",
                              "location": "path",
                              "type": "string"
                            }
                          },
                          "description": "Deletes an application template revision.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.delete",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "get": {
                          "response": {
                            "$ref": "ApplicationTemplateRevision"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.get",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "description": "Required. The application template revision name.",
                              "required": true
                            }
                          },
                          "description": "Gets details about an application template revision.",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "path": "v1alpha/{+name}",
                          "parameterOrder": [
                            "name"
                          ],
                          "httpMethod": "GET"
                        }
                      }
                    },
                    "components": {
                      "methods": {
                        "get": {
                          "response": {
                            "$ref": "Component"
                          },
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "description": "Required. The component name.",
                              "location": "path",
                              "type": "string",
                              "required": true
                            }
                          },
                          "description": "Gets details about a Component.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.get",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "name"
                          ],
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "httpMethod": "GET"
                        },
                        "patch": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.patch",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "description": "Identifier. The component name.",
                              "required": true
                            },
                            "updateMask": {
                              "description": "Optional. The fields to overwrite in the component update. If you don't provide a mask, all fields are overwritten.",
                              "type": "string",
                              "format": "google-fieldmask",
                              "location": "query"
                            }
                          },
                          "description": "Updates a component.",
                          "response": {
                            "$ref": "Component"
                          },
                          "httpMethod": "PATCH",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "request": {
                            "$ref": "Component"
                          },
                          "parameterOrder": [
                            "name"
                          ]
                        },
                        "create": {
                          "parameters": {
                            "parent": {
                              "required": true,
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "description": "Required. The parent resource in which to create the component."
                            },
                            "componentId": {
                              "type": "string",
                              "location": "query",
                              "description": "Required. The ID of the component to create."
                            }
                          },
                          "description": "Creates a component.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.create",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "Component"
                          },
                          "httpMethod": "POST",
                          "parameterOrder": [
                            "parent"
                          ],
                          "path": "v1alpha/{+parent}/components",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "request": {
                            "$ref": "Component"
                          }
                        },
                        "list": {
                          "response": {
                            "$ref": "ListComponentsResponse"
                          },
                          "parameters": {
                            "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"
                            },
                            "parent": {
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent resource from which the list of components is requested.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "required": true
                            },
                            "filter": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. A filter that chooses which components to return."
                            },
                            "pageToken": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "description": "Lists components in an application template.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.list",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "parent"
                          ],
                          "path": "v1alpha/{+parent}/components",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "httpMethod": "GET"
                        },
                        "delete": {
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "description": "Required. The component name.",
                              "location": "path",
                              "type": "string",
                              "required": true
                            },
                            "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"
                            }
                          },
                          "description": "Deletes a component.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.delete",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "Empty"
                          },
                          "httpMethod": "DELETE",
                          "parameterOrder": [
                            "name"
                          ],
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}"
                        }
                      },
                      "resources": {
                        "connections": {
                          "methods": {
                            "create": {
                              "httpMethod": "POST",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "request": {
                                "$ref": "Connection"
                              },
                              "path": "v1alpha/{+parent}/connections",
                              "parameterOrder": [
                                "parent"
                              ],
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.create",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "parent": {
                                  "location": "path",
                                  "type": "string",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                                  "description": "Required. The parent resource in which to create a connection.",
                                  "required": true
                                },
                                "connectionId": {
                                  "description": "Required. The ID of the connection to create.",
                                  "location": "query",
                                  "type": "string"
                                }
                              },
                              "description": "Creates a connection.",
                              "response": {
                                "$ref": "Connection"
                              }
                            },
                            "list": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.list",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "pageToken": {
                                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "orderBy": {
                                  "description": "Optional. How the results should be sorted.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "filter": {
                                  "description": "Optional. A filter that chooses which connections to return.",
                                  "type": "string",
                                  "location": "query"
                                },
                                "parent": {
                                  "required": true,
                                  "description": "Required. The parent resource from which to request a list of connections.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                                  "type": "string",
                                  "location": "path"
                                },
                                "pageSize": {
                                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                                  "type": "integer",
                                  "format": "int32",
                                  "location": "query"
                                }
                              },
                              "description": "Lists connections in an application template.",
                              "response": {
                                "$ref": "ListConnectionsResponse"
                              },
                              "httpMethod": "GET",
                              "path": "v1alpha/{+parent}/connections",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "parameterOrder": [
                                "parent"
                              ]
                            },
                            "delete": {
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "parameterOrder": [
                                "name"
                              ],
                              "httpMethod": "DELETE",
                              "response": {
                                "$ref": "Empty"
                              },
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.delete",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "name": {
                                  "description": "Required. The connection name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "type": "string",
                                  "location": "path",
                                  "required": true
                                }
                              },
                              "description": "Deletes a connection."
                            },
                            "get": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.get",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "type": "string",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "description": "Required. Name of the resource",
                                  "required": true
                                }
                              },
                              "description": "Gets details about a connection.",
                              "response": {
                                "$ref": "Connection"
                              },
                              "httpMethod": "GET",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "parameterOrder": [
                                "name"
                              ]
                            },
                            "patch": {
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.patch",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "name": {
                                  "required": true,
                                  "description": "Identifier. The connection name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "type": "string",
                                  "location": "path"
                                },
                                "updateMask": {
                                  "type": "string",
                                  "format": "google-fieldmask",
                                  "location": "query",
                                  "description": "Optional. Fields to overwrite in the connection update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten."
                                }
                              },
                              "description": "Updates a connection.",
                              "response": {
                                "$ref": "Connection"
                              },
                              "httpMethod": "PATCH",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "request": {
                                "$ref": "Connection"
                              },
                              "parameterOrder": [
                                "name"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "catalogs": {
                  "methods": {
                    "create": {
                      "path": "v1alpha/{+parent}/catalogs",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "request": {
                        "$ref": "Catalog"
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "id": "designcenter.projects.locations.spaces.catalogs.create",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "catalogId": {
                          "type": "string",
                          "location": "query",
                          "description": "Required. The ID of the catalog to create."
                        },
                        "parent": {
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "description": "Required. The parent space in which a catalog is created in the following format: `projects/$project/locations/$location/spaces/$space`",
                          "location": "path",
                          "type": "string"
                        }
                      },
                      "description": "Creates a catalog."
                    },
                    "list": {
                      "path": "v1alpha/{+parent}/catalogs",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "parameterOrder": [
                        "parent"
                      ],
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListCatalogsResponse"
                      },
                      "id": "designcenter.projects.locations.spaces.catalogs.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "parent": {
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "description": "Required. The parent space from which catalogs are listed. Format: `projects/$project/locations/$location/spaces/$space`",
                          "required": true
                        },
                        "pageSize": {
                          "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                          "type": "integer",
                          "format": "int32",
                          "location": "query"
                        },
                        "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"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "type": "string",
                          "location": "query"
                        },
                        "filter": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. A filter that chooses which catalogs to return."
                        }
                      },
                      "description": "Lists catalogs in a given space."
                    },
                    "delete": {
                      "id": "designcenter.projects.locations.spaces.catalogs.delete",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "force": {
                          "type": "boolean",
                          "location": "query",
                          "description": "Optional. If set to true, the catalog's children are also deleted. If false, the catalog is only deleted if it has no children."
                        },
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "description": "Required. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`"
                        }
                      },
                      "description": "Deletes a catalog.",
                      "response": {
                        "$ref": "Operation"
                      },
                      "httpMethod": "DELETE",
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "parameterOrder": [
                        "name"
                      ]
                    },
                    "get": {
                      "id": "designcenter.projects.locations.spaces.catalogs.get",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "description": "Required. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`"
                        }
                      },
                      "description": "Gets details about a catalog.",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "path": "v1alpha/{+name}",
                      "parameterOrder": [
                        "name"
                      ]
                    },
                    "patch": {
                      "response": {
                        "$ref": "Catalog"
                      },
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "description": "Identifier. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "updateMask": {
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask",
                          "description": "Optional. The fields to overwrite in the catalog update. If you don't provide a mask, all fields are overwritten."
                        }
                      },
                      "description": "Updates a catalog.",
                      "id": "designcenter.projects.locations.spaces.catalogs.patch",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "request": {
                        "$ref": "Catalog"
                      },
                      "path": "v1alpha/{+name}",
                      "httpMethod": "PATCH"
                    }
                  },
                  "resources": {
                    "templates": {
                      "methods": {
                        "create": {
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "parameters": {
                            "catalogTemplateId": {
                              "description": "Required. The ID of the catalog template to create. The ID is appended to the catalog template's name.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "description": "Required. The parent resource in which the catalog template is created.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "type": "string",
                              "location": "path",
                              "required": true
                            }
                          },
                          "description": "Adds a template to a catalog.",
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.create",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameterOrder": [
                            "parent"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "path": "v1alpha/{+parent}/templates",
                          "httpMethod": "POST"
                        },
                        "list": {
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "parent"
                          ],
                          "path": "v1alpha/{+parent}/templates",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "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/[^/]+$",
                              "type": "string",
                              "location": "path",
                              "required": true
                            },
                            "pageSize": {
                              "type": "integer",
                              "format": "int32",
                              "location": "query",
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available."
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. How the results should be sorted."
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses the catalog templates to return.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "description": "Lists catalog templates.",
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.list",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "ListCatalogTemplatesResponse"
                          }
                        },
                        "delete": {
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.delete",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "description": "Required. The catalog template name. Format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "location": "path",
                              "type": "string",
                              "required": true
                            },
                            "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"
                            }
                          },
                          "description": "Deletes a catalog template.",
                          "response": {
                            "$ref": "Operation"
                          },
                          "httpMethod": "DELETE",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "path": "v1alpha/{+name}",
                          "parameterOrder": [
                            "name"
                          ]
                        },
                        "get": {
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.get",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "required": true,
                              "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/[^/]+$",
                              "type": "string",
                              "location": "path"
                            }
                          },
                          "description": "Gets a catalog template.",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "httpMethod": "GET"
                        },
                        "patch": {
                          "parameters": {
                            "name": {
                              "type": "string",
                              "location": "path",
                              "description": "Identifier. The catalog template name in following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "required": true
                            },
                            "updateMask": {
                              "description": "Optional. The fields to overwrite in the catalog template update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten.",
                              "type": "string",
                              "format": "google-fieldmask",
                              "location": "query"
                            }
                          },
                          "description": "Updates a catalog template resource.",
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.patch",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "httpMethod": "PATCH",
                          "parameterOrder": [
                            "name"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "path": "v1alpha/{+name}"
                        }
                      },
                      "resources": {
                        "revisions": {
                          "methods": {
                            "get": {
                              "httpMethod": "GET",
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "parameterOrder": [
                                "name"
                              ],
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.get",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "name": {
                                  "required": true,
                                  "description": "Required. The catalog template revisions name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "type": "string",
                                  "location": "path"
                                }
                              },
                              "description": "Gets details about a template revision.",
                              "response": {
                                "$ref": "CatalogTemplateRevision"
                              }
                            },
                            "fetchAssessmentReport": {
                              "httpMethod": "GET",
                              "parameterOrder": [
                                "name"
                              ],
                              "path": "v1alpha/{+name}:fetchAssessmentReport",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}:fetchAssessmentReport",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "type": "string",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "description": "Required. The catalog template revision name in the following format: `projects/{project}/locations/{location}/spaces/{space}/catalogs/{catalog}/templates/{template}/revisions/{revision}`",
                                  "required": true
                                }
                              },
                              "description": "Fetches the assessment report of a catalog template revision if present.",
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.fetchAssessmentReport",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "response": {
                                "$ref": "FetchCatalogTemplateRevisionAssessmentReportResponse"
                              }
                            },
                            "create": {
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "request": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "path": "v1alpha/{+parent}/revisions",
                              "parameterOrder": [
                                "parent"
                              ],
                              "httpMethod": "POST",
                              "response": {
                                "$ref": "Operation"
                              },
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.create",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "parameters": {
                                "parent": {
                                  "location": "path",
                                  "type": "string",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                                  "description": "Required. The parent in which the catalog template revisions request is created in following format: `projects/$project/locations/$location/spaces/$space/templates/$template`",
                                  "required": true
                                },
                                "catalogTemplateRevisionId": {
                                  "type": "string",
                                  "location": "query",
                                  "description": "Required. The ID of the template revision to create."
                                }
                              },
                              "description": "Creates a template revision."
                            },
                            "list": {
                              "parameters": {
                                "parent": {
                                  "required": true,
                                  "description": "Required. The parent resource from which a list of catalog template revisions is requested.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                                  "type": "string",
                                  "location": "path"
                                },
                                "pageSize": {
                                  "location": "query",
                                  "type": "integer",
                                  "format": "int32",
                                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available."
                                },
                                "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"
                                },
                                "filter": {
                                  "type": "string",
                                  "location": "query",
                                  "description": "Optional. A filter that chooses which catalog template revisions to return."
                                }
                              },
                              "description": "Lists template revisions.",
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.list",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "response": {
                                "$ref": "ListCatalogTemplateRevisionsResponse"
                              },
                              "httpMethod": "GET",
                              "parameterOrder": [
                                "parent"
                              ],
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "path": "v1alpha/{+parent}/revisions"
                            },
                            "delete": {
                              "parameters": {
                                "name": {
                                  "required": true,
                                  "description": "Required. The template revision name.",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "type": "string",
                                  "location": "path"
                                }
                              },
                              "description": "Deletes a template revision.",
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.delete",
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "response": {
                                "$ref": "Operation"
                              },
                              "httpMethod": "DELETE",
                              "parameterOrder": [
                                "name"
                              ],
                              "path": "v1alpha/{+name}",
                              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}"
                            }
                          }
                        }
                      }
                    },
                    "shares": {
                      "methods": {
                        "sync": {
                          "parameters": {
                            "name": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "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/[^/]+$"
                            }
                          },
                          "description": "Synchronizes a share and updates the destination workspace to reflect. reflect the most recent changes to the catalog.",
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.sync",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "Operation"
                          },
                          "httpMethod": "POST",
                          "parameterOrder": [
                            "name"
                          ],
                          "path": "v1alpha/{+name}:sync",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}:sync",
                          "request": {
                            "$ref": "SyncShareRequest"
                          }
                        },
                        "get": {
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.get",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "description": "Required. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
                              "required": true
                            }
                          },
                          "description": "Get catalog share object for the space.",
                          "response": {
                            "$ref": "Share"
                          },
                          "httpMethod": "GET",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "parameterOrder": [
                            "name"
                          ]
                        },
                        "create": {
                          "parameters": {
                            "parent": {
                              "required": true,
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "description": "Required. The parent resource in which shares are created."
                            },
                            "shareId": {
                              "description": "Required. The ID of the share to create.",
                              "type": "string",
                              "location": "query"
                            }
                          },
                          "description": "Shares a catalog from one space to another space.",
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.create",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "Operation"
                          },
                          "httpMethod": "POST",
                          "parameterOrder": [
                            "parent"
                          ],
                          "path": "v1alpha/{+parent}/shares",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "request": {
                            "$ref": "Share"
                          }
                        },
                        "list": {
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.list",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "parent": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "description": "Required. The parent resource from which a list of shares is requested.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "type": "string",
                              "location": "query"
                            },
                            "orderBy": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. How the results should be sorted."
                            },
                            "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"
                            }
                          },
                          "description": "Lists catalog share objects for the space.",
                          "response": {
                            "$ref": "ListSharesResponse"
                          },
                          "httpMethod": "GET",
                          "path": "v1alpha/{+parent}/shares",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "parameterOrder": [
                            "parent"
                          ]
                        },
                        "delete": {
                          "response": {
                            "$ref": "Operation"
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.delete",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "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/[^/]+$"
                            }
                          },
                          "description": "Deletes a catalog share.",
                          "path": "v1alpha/{+name}",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "parameterOrder": [
                            "name"
                          ],
                          "httpMethod": "DELETE"
                        }
                      }
                    }
                  }
                },
                "sharedTemplates": {
                  "methods": {
                    "list": {
                      "parameterOrder": [
                        "parent"
                      ],
                      "path": "v1alpha/{+parent}/sharedTemplates",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListSharedTemplatesResponse"
                      },
                      "parameters": {
                        "pageSize": {
                          "location": "query",
                          "type": "integer",
                          "format": "int32",
                          "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available."
                        },
                        "parent": {
                          "type": "string",
                          "location": "path",
                          "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/[^/]+$",
                          "required": true
                        },
                        "filter": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. A filter that chooses which shared templates to return."
                        },
                        "pageToken": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                        },
                        "orderBy": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. How the results should be sorted."
                        }
                      },
                      "description": "Lists shared templates in a given space.",
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}",
                      "path": "v1alpha/{+name}",
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$",
                          "description": "Required. The shared template name. Format: `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate`"
                        }
                      },
                      "description": "Gets details about a shared template.",
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.get",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "SharedTemplate"
                      }
                    }
                  },
                  "resources": {
                    "revisions": {
                      "methods": {
                        "fetchAssessmentReport": {
                          "path": "v1alpha/{+name}:fetchAssessmentReport",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions/{revisionsId}:fetchAssessmentReport",
                          "parameterOrder": [
                            "name"
                          ],
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "FetchSharedTemplateRevisionAssessmentReportResponse"
                          },
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.fetchAssessmentReport",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "name": {
                              "description": "Required. The shared template revision name in the following format: `projects/{project}/locations/{location}/spaces/{space}/sharedTemplates/{shared_template}/revisions/{revision}`",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+/revisions/[^/]+$",
                              "type": "string",
                              "location": "path",
                              "required": true
                            }
                          },
                          "description": "Fetches the assessment report of a shared template revision if present."
                        },
                        "get": {
                          "parameters": {
                            "name": {
                              "location": "path",
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+/revisions/[^/]+$",
                              "description": "Required. The shared template revision name, in the following format: `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate/revisions/$revision`",
                              "required": true
                            }
                          },
                          "description": "Gets details about a shared template revision.",
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.get",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "response": {
                            "$ref": "SharedTemplateRevision"
                          },
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "name"
                          ],
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions/{revisionsId}",
                          "path": "v1alpha/{+name}"
                        },
                        "list": {
                          "path": "v1alpha/{+parent}/revisions",
                          "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions",
                          "parameterOrder": [
                            "parent"
                          ],
                          "httpMethod": "GET",
                          "response": {
                            "$ref": "ListSharedTemplateRevisionsResponse"
                          },
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.list",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "parameters": {
                            "pageToken": {
                              "type": "string",
                              "location": "query",
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                            },
                            "orderBy": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. How the results should be sorted."
                            },
                            "filter": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. A filter that chooses which shared template revisions to return."
                            },
                            "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/[^/]+$",
                              "type": "string",
                              "location": "path",
                              "required": true
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.",
                              "type": "integer",
                              "format": "int32",
                              "location": "query"
                            }
                          },
                          "description": "Lists shared template revisions in a given space."
                        }
                      }
                    }
                  }
                },
                "applications": {
                  "methods": {
                    "fetchAssessmentReport": {
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}:fetchAssessmentReport",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:fetchAssessmentReport",
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`"
                        }
                      },
                      "description": "Fetches the assessment report of a deployed application if present.",
                      "id": "designcenter.projects.locations.spaces.applications.fetchAssessmentReport",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "FetchApplicationAssessmentReportResponse"
                      }
                    },
                    "generateAssessmentReport": {
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}:generateAssessmentReport",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generateAssessmentReport",
                      "request": {
                        "$ref": "GenerateApplicationAssessmentReportRequest"
                      },
                      "parameters": {
                        "name": {
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "required": true
                        }
                      },
                      "description": "Generate Assessment Reports of an application.",
                      "id": "designcenter.projects.locations.spaces.applications.generateAssessmentReport",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Operation"
                      }
                    },
                    "importIaC": {
                      "response": {
                        "$ref": "ImportApplicationIaCResponse"
                      },
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The name of the application.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        }
                      },
                      "description": "Imports IaC for an application resource.",
                      "id": "designcenter.projects.locations.spaces.applications.importIaC",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}:importIaC",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:importIaC",
                      "request": {
                        "$ref": "ImportApplicationIaCRequest"
                      },
                      "httpMethod": "POST"
                    },
                    "list": {
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "parent"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "path": "v1alpha/{+parent}/applications",
                      "parameters": {
                        "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"
                        },
                        "parent": {
                          "description": "Required. The parent resource from which to request a list of applications.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "type": "string",
                          "location": "path",
                          "required": true
                        },
                        "filter": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. A filter that chooses which applications to return."
                        },
                        "pageToken": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                        },
                        "orderBy": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. How the results should be sorted."
                        }
                      },
                      "description": "Lists applications in a given space.",
                      "id": "designcenter.projects.locations.spaces.applications.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ListApplicationsResponse"
                      }
                    },
                    "delete": {
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "type": "string",
                          "location": "path",
                          "required": true
                        },
                        "force": {
                          "location": "query",
                          "type": "boolean",
                          "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."
                        }
                      },
                      "description": "Deletes an application.",
                      "id": "designcenter.projects.locations.spaces.applications.delete",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "httpMethod": "DELETE",
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "path": "v1alpha/{+name}"
                    },
                    "generate": {
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "type": "string",
                          "location": "path",
                          "required": true
                        }
                      },
                      "description": "Generates Terraform files for an application.",
                      "id": "designcenter.projects.locations.spaces.applications.generate",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "GenerateApplicationIaCResponse"
                      },
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha/{+name}:generate",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generate",
                      "request": {
                        "$ref": "GenerateApplicationIaCRequest"
                      }
                    },
                    "create": {
                      "httpMethod": "POST",
                      "path": "v1alpha/{+parent}/applications",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "request": {
                        "$ref": "Application"
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "id": "designcenter.projects.locations.spaces.applications.create",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "parent": {
                          "type": "string",
                          "location": "path",
                          "description": "Required. The parent resource in which to create the application. Format: `projects/$project/locations/$location/spaces/$space`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "required": true
                        },
                        "applicationId": {
                          "description": "Required. The ID of the application to create.",
                          "type": "string",
                          "location": "query"
                        }
                      },
                      "description": "Creates an application.",
                      "response": {
                        "$ref": "Application"
                      }
                    },
                    "preview": {
                      "id": "designcenter.projects.locations.spaces.applications.preview",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "location": "path",
                          "type": "string",
                          "required": true
                        }
                      },
                      "description": "Previews deployment of an application.",
                      "response": {
                        "$ref": "Operation"
                      },
                      "httpMethod": "POST",
                      "path": "v1alpha/{+name}:preview",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:preview",
                      "request": {
                        "$ref": "PreviewApplicationRequest"
                      },
                      "parameterOrder": [
                        "name"
                      ]
                    },
                    "register": {
                      "response": {
                        "$ref": "Operation"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.register",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "description": "Required. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$"
                        }
                      },
                      "description": "Register deployed application from terraform state file with App Hub.",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:register",
                      "request": {
                        "$ref": "RegisterDeployedApplicationRequest"
                      },
                      "path": "v1alpha/{+name}:register",
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "POST"
                    },
                    "patch": {
                      "path": "v1alpha/{+name}",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "request": {
                        "$ref": "Application"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "PATCH",
                      "response": {
                        "$ref": "Application"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.patch",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "type": "string",
                          "location": "path",
                          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "required": true
                        },
                        "updateMask": {
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask",
                          "description": "Optional. The fields to overwrite in the application update. If you don't provide a mask, all fields are overwritten."
                        }
                      },
                      "description": "Updates an application."
                    },
                    "deploy": {
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:deploy",
                      "request": {
                        "$ref": "DeployApplicationRequest"
                      },
                      "path": "v1alpha/{+name}:deploy",
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "type": "string",
                          "location": "path",
                          "required": true
                        }
                      },
                      "description": "Deploys an application.",
                      "id": "designcenter.projects.locations.spaces.applications.deploy",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`"
                        }
                      },
                      "description": "Gets details about an application.",
                      "id": "designcenter.projects.locations.spaces.applications.get",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Application"
                      },
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "path": "v1alpha/{+name}"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "mtlsRootUrl": "https://designcenter.mtls.googleapis.com/",
  "kind": "discovery#restDescription",
  "canonicalName": "Application Design Center",
  "schemas": {
    "AssessedFramework": {
      "description": "Framework assessed and their findings.",
      "properties": {
        "skipped": {
          "description": "Optional. Whether the framework was skipped during assessment.",
          "type": "boolean"
        },
        "skippedReason": {
          "description": "Optional. Reason for skipping the framework during assessment.",
          "type": "string"
        },
        "findings": {
          "type": "array",
          "description": "Required. A list of every Finding found during the assessment.",
          "items": {
            "$ref": "AssessmentFinding"
          }
        },
        "framework": {
          "description": "Required. The framework that was assessed.",
          "$ref": "Framework"
        },
        "scoreCard": {
          "description": "Optional. Score card associated with the report.",
          "$ref": "ScoreCard"
        }
      },
      "type": "object",
      "id": "AssessedFramework"
    },
    "ContactInfo": {
      "description": "Contact information of stakeholders.",
      "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"
        }
      },
      "type": "object",
      "id": "ContactInfo"
    },
    "SetIamPolicyRequest": {
      "description": "Request message for `SetIamPolicy` method.",
      "properties": {
        "policy": {
          "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them.",
          "$ref": "Policy"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`"
        }
      },
      "type": "object",
      "id": "SetIamPolicyRequest"
    },
    "DomainAssessmentReport": {
      "id": "DomainAssessmentReport",
      "type": "object",
      "properties": {
        "domainId": {
          "type": "string",
          "description": "Output only. The ID of the domain.",
          "readOnly": true
        },
        "domainRedirectInfo": {
          "$ref": "DomainRedirectInfo",
          "description": "Optional. Information on how to redirect to domain."
        },
        "assessedFrameworks": {
          "description": "Required. List of frameworks assessed and their findings.",
          "items": {
            "$ref": "AssessedFramework"
          },
          "type": "array"
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time at which the report was created.",
          "readOnly": true
        },
        "additionalInfo": {
          "description": "Optional. Additional information about the report.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "No status specified.",
            "Pending domain assessment.",
            "Complete domain assessment.",
            "Failed domain assessment."
          ],
          "enum": [
            "STATUS_UNSPECIFIED",
            "PENDING",
            "COMPLETED",
            "FAILED"
          ],
          "description": "Optional. Status of assessment report."
        },
        "adcMetadata": {
          "description": "Output only. Specific information and metadata.",
          "readOnly": true,
          "$ref": "AdcMetadata"
        },
        "updateTime": {
          "description": "Output only. The time at which the report was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "reportName": {
          "description": "Optional. The report name as per Application Design Center.",
          "type": "string"
        },
        "skippedAssetTypes": {
          "description": "Optional. List of asset types skipped during assessment.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "reportScore": {
          "$ref": "ScoreCard",
          "description": "Output only. Score card associated with the report.",
          "readOnly": true
        }
      },
      "description": "The assessment report for each domain."
    },
    "ImportApplicationIaCResponse": {
      "description": "Response message for ImportApplicationIaC method.",
      "properties": {
        "state": {
          "description": "The state of the import.",
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "type": "string"
        },
        "application": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "Application"
        },
        "errors": {
          "description": "Errors encountered during import.",
          "items": {
            "$ref": "ImportIaCError"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "ImportApplicationIaCResponse"
    },
    "CatalogTemplate": {
      "id": "CatalogTemplate",
      "type": "object",
      "properties": {
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true
        },
        "latestRevisionId": {
          "description": "Output only. Latest revision of the template.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "description": "Optional. The Application Design Center application template type.",
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "type": "string"
        },
        "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"
        },
        "uuid": {
          "type": "string",
          "description": "Output only. The template revisions UUID.",
          "readOnly": true
        },
        "description": {
          "description": "Optional. The catalog template description.",
          "type": "string"
        },
        "templateCategory": {
          "description": "Required. The category of the Application Design Center application template.",
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true
        }
      },
      "description": "A template inside a catalog."
    },
    "DeploymentGroupMetadata": {
      "id": "DeploymentGroupMetadata",
      "type": "object",
      "properties": {
        "deploymentGroup": {
          "type": "string",
          "description": "Output only. The deployment group name. Format: projects/{project}/locations/{location}/deploymentGroup/{deployment_group}",
          "readOnly": true
        },
        "deploymentMetadataMap": {
          "type": "object",
          "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,
          "additionalProperties": {
            "$ref": "DeploymentMetadata"
          }
        }
      },
      "description": "Metadata for the infra manager deployment group. A deployment group in Infrastructure Manager is a logical grouping of one or more deployments."
    },
    "OciRepo": {
      "type": "object",
      "id": "OciRepo",
      "description": "Open Container Initiative (OCI) repo.",
      "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"
        },
        "moduleSourceUri": {
          "description": "Optional. Field for containing the references to the source from which the OCI repo was created.",
          "type": "string"
        }
      }
    },
    "ListSharedTemplatesResponse": {
      "properties": {
        "sharedTemplates": {
          "type": "array",
          "description": "The list of shared templates.",
          "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"
        }
      },
      "description": "Message for response to listing shared templates.",
      "id": "ListSharedTemplatesResponse",
      "type": "object"
    },
    "GitSource": {
      "description": "Defines how to access a Git source.",
      "properties": {
        "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"
        },
        "repo": {
          "description": "Required. Location of the git repo to build.",
          "type": "string"
        },
        "commitSha": {
          "description": "Output only. The commit SHA of the git repo deduced from given ref_tag.",
          "readOnly": true,
          "type": "string"
        },
        "developerConnectConfig": {
          "deprecated": true,
          "$ref": "DeveloperConnectConfig",
          "description": "Optional. This config defines the location of a source through Developer Connect. Used to access private git repos."
        },
        "refTag": {
          "description": "Required. The reference tag of the git repo.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GitSource"
    },
    "SerializedComponent": {
      "type": "object",
      "id": "SerializedComponent",
      "description": "Serialized component.",
      "properties": {
        "uri": {
          "description": "Optional. The component URI.",
          "type": "string"
        },
        "connections": {
          "type": "array",
          "description": "Optional. The component connections.",
          "items": {
            "$ref": "SerializedConnection"
          }
        },
        "parameters": {
          "description": "Optional. The component parameters.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "connectionsParameters": {
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "items": {
            "$ref": "ConnectionParameters"
          },
          "type": "array"
        },
        "sharedTemplateRevisionUri": {
          "description": "Optional. The shared template used to generate the component.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        },
        "apis": {
          "description": "Optional. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "componentParameterSchema": {
          "type": "array",
          "description": "Output only. The component parameter schema, which includes possible parameter values.",
          "readOnly": true,
          "items": {
            "$ref": "ComponentParameterSchema"
          }
        },
        "useAsRootModule": {
          "description": "Optional. Whether the component is exported as a separate terraform root module in a composite application template. If this is false, then native components will be exported as a submodule of a separate terraform root module.",
          "type": "boolean"
        },
        "roles": {
          "type": "array",
          "description": "Optional. IAM roles required by the service account to deploy the component.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Domain": {
      "type": "object",
      "id": "Domain",
      "description": "Domain for assessment.",
      "properties": {
        "domainName": {
          "description": "Required. The domain name. Uniquely identifies the domain.",
          "type": "string"
        },
        "inactive": {
          "description": "Optional. Whether the domain is inactive. Default: false.",
          "type": "boolean"
        },
        "description": {
          "description": "Optional. The domain description.",
          "type": "string"
        },
        "frameworks": {
          "type": "array",
          "description": "Optional. The frameworks that are applicable in this domain.",
          "items": {
            "$ref": "Framework"
          }
        },
        "displayName": {
          "description": "Optional. The domain display name is user friendly name used for UI.",
          "type": "string"
        }
      }
    },
    "ApplicationTemplateRevision": {
      "type": "object",
      "id": "ApplicationTemplateRevision",
      "description": "Application template revision resource.",
      "properties": {
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The application template revision creation timestamp.",
          "readOnly": true
        },
        "artifactLocation": {
          "$ref": "ArtifactLocation",
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate Revision was last successfully exported.",
          "readOnly": true
        },
        "templateMetadata": {
          "description": "Output only. The input output variables parsed from the imported terraform code.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "iacSource": {
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ],
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ],
          "type": "string",
          "description": "Output only. Indicates the IaC source format of this application template revision.",
          "readOnly": true
        },
        "applicationParameters": {
          "description": "Optional. The values provided for the input variables.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "name": {
          "description": "Identifier. The application template revision name.",
          "type": "string"
        },
        "snapshot": {
          "description": "Output only. The serialized application template.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        }
      }
    },
    "ListCatalogsResponse": {
      "description": "Results returned from catalogs.list.",
      "properties": {
        "catalogs": {
          "description": "A list of catalogs",
          "items": {
            "$ref": "Catalog"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ListCatalogsResponse"
    },
    "TemplateSchema": {
      "type": "object",
      "id": "TemplateSchema",
      "description": "TemplateSchema provides the input variables lists and connection information.",
      "properties": {
        "variables": {
          "description": "Required. All defined variables for the Template",
          "items": {
            "$ref": "TemplateVariable"
          },
          "type": "array"
        }
      }
    },
    "HelmApplicationOutputParameters": {
      "type": "object",
      "id": "HelmApplicationOutputParameters",
      "description": "The helm application output parameters of the deployment.",
      "properties": {
        "parameters": {
          "type": "array",
          "description": "Output only. The output parameters of the helm application.",
          "readOnly": true,
          "items": {
            "$ref": "Parameter"
          }
        }
      }
    },
    "AppHubApplicationParameters": {
      "properties": {
        "hostProjectId": {
          "description": "Optional. The host project ID where the App Hub application is created.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. The App Hub application attributes.",
          "$ref": "Attributes"
        },
        "applicationId": {
          "description": "Optional. The App Hub application ID.",
          "type": "string"
        },
        "scope": {
          "description": "Optional. The App Hub application scope.",
          "$ref": "Scope"
        },
        "location": {
          "description": "Optional. The App Hub application location. Only used for applications with REGIONAL scope.",
          "type": "string"
        }
      },
      "description": "App Hub application parameters.",
      "id": "AppHubApplicationParameters",
      "type": "object"
    },
    "Share": {
      "description": "A catalog share between spaces.",
      "properties": {
        "destinationSpace": {
          "description": "Required. The space resource path to which the catalog is shared. Format is `projects/$project/locations/$location/spaces/$space`",
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The share creation timestamp.",
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
          "type": "string"
        },
        "state": {
          "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"
          ],
          "type": "string",
          "description": "Output only. The state of the share.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "Share"
    },
    "ListLocationsResponse": {
      "id": "ListLocationsResponse",
      "type": "object",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "items": {
            "$ref": "Location"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "description": "The response message for Locations.ListLocations."
    },
    "ListComponentsResponse": {
      "id": "ListComponentsResponse",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        },
        "components": {
          "type": "array",
          "description": "The list of components.",
          "items": {
            "$ref": "Component"
          }
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Message for response to listing components."
    },
    "ListApplicationTemplateSystemRevisionsResponse": {
      "properties": {
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "applicationTemplateSystemRevisions": {
          "type": "array",
          "description": "The list of application template system revisions.",
          "items": {
            "$ref": "ApplicationTemplateSystemRevision"
          }
        }
      },
      "description": "Message for response to listing application template system revisions.",
      "id": "ListApplicationTemplateSystemRevisionsResponse",
      "type": "object"
    },
    "SharedTemplateRevision": {
      "id": "SharedTemplateRevision",
      "type": "object",
      "properties": {
        "logicalProducts": {
          "type": "array",
          "description": "Output only. The Product Main logical product type information.",
          "readOnly": true,
          "items": {
            "$ref": "LogicalProduct"
          }
        },
        "applicationParameters": {
          "description": "Optional. The values provided for the input variables.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "resourceTypes": {
          "type": "array",
          "description": "Output only. The resource types present in the template revision.",
          "readOnly": true,
          "items": {
            "$ref": "ResourceType"
          }
        },
        "developerConnectSourceConfig": {
          "$ref": "DeveloperConnectSourceConfig",
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect."
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "iacSource": {
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ],
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ],
          "type": "string",
          "description": "Output only. Indicates the IaC source format of this shared template revision.",
          "readOnly": true
        },
        "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"
        },
        "sharedTemplateMetadata": {
          "description": "Output only. The shared template metadata.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "createTime": {
          "description": "Output only. The shared template revision creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "inferredMetadata": {
          "$ref": "InferredMetadata",
          "description": "Output only. Metadata that was automatically inferred from the template content.",
          "readOnly": true
        },
        "gcsSourceUri": {
          "deprecated": true,
          "type": "string",
          "description": "Optional. Deprecated: Added new field tf_module_gcs_uri. The Cloud Storage URI, which must be in the format gs://[bucket] or gs://[bucket]/[object]."
        },
        "type": {
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "description": "Optional. The Application Design Center assembly template type.",
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ]
        },
        "originTemplateRevision": {
          "type": "string",
          "description": "Output only. The shared template revision refers to the following catalog template revision.",
          "readOnly": true
        },
        "applicationTemplateRevision": {
          "$ref": "SerializedApplicationTemplate",
          "description": "Output only. The serialized application template revision.",
          "readOnly": true
        },
        "description": {
          "description": "Optional. The shared template revision description.",
          "type": "string"
        },
        "templateCategory": {
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "description": "Output only. The category of the template.",
          "readOnly": true,
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "readOnly": true,
          "$ref": "HelmChartMetadata"
        },
        "annotations": {
          "type": "object",
          "description": "Optional. The annotations of the shared template revision. Key is the annotation name. Value is the annotation value.",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "description": "A read-only template revision that is shared with a space."
    },
    "ListSpacesResponse": {
      "id": "ListSpacesResponse",
      "type": "object",
      "properties": {
        "unreachable": {
          "type": "array",
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "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"
        },
        "spaces": {
          "type": "array",
          "description": "A list of spaces.",
          "items": {
            "$ref": "Space"
          }
        }
      },
      "description": "Results returned from projects.locations.spaces.list."
    },
    "TerraformBlueprintUiMetadata": {
      "properties": {
        "terraformUiOutput": {
          "description": "Output only. Terraform UI outputs.",
          "readOnly": true,
          "$ref": "TerraformUiOutput"
        },
        "terraformUiInput": {
          "description": "Output only. Terraform UI inputs.",
          "readOnly": true,
          "$ref": "TerraformUiInput"
        }
      },
      "description": "Terraform blueprint UI metadata.",
      "id": "TerraformBlueprintUiMetadata",
      "type": "object"
    },
    "ValueLabel": {
      "description": "Value label for a UI input.",
      "properties": {
        "value": {
          "type": "string",
          "description": "Output only. Value of the enum.",
          "readOnly": true
        },
        "label": {
          "description": "Output only. Label of the enum.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "ValueLabel"
    },
    "AssetDetails": {
      "id": "AssetDetails",
      "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"
        }
      },
      "description": "Details of a Cloud Asset Inventory asset that caused the finding."
    },
    "Connection": {
      "id": "Connection",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The connection name.",
          "type": "string"
        },
        "destinationComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "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"
        },
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The connection update timestamp.",
          "readOnly": true
        }
      },
      "description": "Connection resource."
    },
    "ListCatalogTemplateRevisionsResponse": {
      "type": "object",
      "id": "ListCatalogTemplateRevisionsResponse",
      "description": "Message for response to listing template revisions.",
      "properties": {
        "catalogTemplateRevisions": {
          "type": "array",
          "description": "The list of template revisions.",
          "items": {
            "$ref": "CatalogTemplateRevision"
          }
        },
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      }
    },
    "DeploymentSource": {
      "description": "Source template information for the deployment.",
      "properties": {
        "applicationTemplateRevision": {
          "description": "Application template revision URI.",
          "type": "string"
        },
        "sharedTemplateRevisionUri": {
          "description": "Shared template revision URI.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "DeploymentSource"
    },
    "CloudControl": {
      "id": "CloudControl",
      "type": "object",
      "properties": {
        "enforcementMode": {
          "description": "Optional. The enforcement mode of the cloud control.",
          "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"
          ],
          "type": "string"
        },
        "majorRevisionId": {
          "type": "integer",
          "format": "int32",
          "description": "Required. The major revision id of the cloud control."
        },
        "name": {
          "description": "Required. The name of the cloud control.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The description of the cloud control.",
          "type": "string"
        }
      },
      "description": "Cloud control for a framework."
    },
    "FetchSharedTemplateRevisionAssessmentReportResponse": {
      "type": "object",
      "id": "FetchSharedTemplateRevisionAssessmentReportResponse",
      "description": "Response message for FetchSharedTemplateRevisionAssessmentReport.",
      "properties": {
        "assessmentReport": {
          "$ref": "AssessmentReport",
          "description": "Assessment report for the shared template revision."
        }
      }
    },
    "DeploymentUnitProgress": {
      "id": "DeploymentUnitProgress",
      "type": "object",
      "properties": {
        "deploymentBuild": {
          "description": "Output only. Deployment build uuid",
          "readOnly": true,
          "type": "string"
        },
        "deploymentUnitStep": {
          "description": "Output only. Current deployment unit step",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "deploymentStep": {
          "type": "string",
          "description": "Output only. Current deployment step",
          "readOnly": true
        }
      },
      "description": "Single deployment unit progress info"
    },
    "TemplateConnections": {
      "type": "object",
      "id": "TemplateConnections",
      "description": "TemplateConnections",
      "properties": {
        "source": {
          "$ref": "ConnectionSource",
          "description": "Required. Source of the connection."
        },
        "spec": {
          "$ref": "ConnectionSpec",
          "description": "Required. Connection specifications."
        }
      }
    },
    "CancelOperationRequest": {
      "type": "object",
      "id": "CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation.",
      "properties": {}
    },
    "ComponentVariable": {
      "id": "ComponentVariable",
      "type": "object",
      "properties": {
        "variable": {
          "description": "Required. Name of the variable.",
          "type": "string"
        },
        "componentUri": {
          "description": "Required. Component to which this variable belongs.",
          "type": "string"
        }
      },
      "description": "The details of an input/output variable: the variable and the component Uri. name."
    },
    "SerializedPolicy": {
      "properties": {
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "applyConditions": {
          "type": "array",
          "description": "Optional. The serialized policy apply conditions.",
          "items": {
            "$ref": "ApplyCondition"
          }
        },
        "uri": {
          "description": "Required. The uri of the policy in application template. Format: `projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/policies/{policy}`",
          "type": "string"
        },
        "description": {
          "description": "Optional. The serialized policy description. At most 2048 characters.",
          "type": "string"
        },
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        },
        "policyType": {
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "Compliance framework policy."
          ],
          "enum": [
            "POLICY_TYPE_UNSPECIFIED",
            "COMPLIANCE_FRAMEWORK"
          ],
          "description": "Required. Policy type will be used to determine the domain of the policy."
        },
        "displayName": {
          "description": "Optional. The serialized policy display name. The number of characters should be less than 128 characters.",
          "type": "string"
        }
      },
      "description": "Serialized policy.",
      "id": "SerializedPolicy",
      "type": "object"
    },
    "ComponentParameters": {
      "id": "ComponentParameters",
      "type": "object",
      "properties": {
        "effectiveApplicationInfo": {
          "$ref": "ComponentApplicationInfo",
          "description": "Output only. The effective application associated with the component. This is the server set application field.",
          "readOnly": true
        },
        "applicationInfo": {
          "$ref": "ComponentApplicationInfo",
          "description": "Optional. The application associated with the component."
        },
        "component": {
          "description": "Required. The name of the component parameter.",
          "type": "string"
        },
        "state": {
          "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"
          ],
          "description": "Output only. Deployment state of the component.",
          "readOnly": true,
          "type": "string"
        },
        "connectionsParameters": {
          "description": "Output only. A list of connections associated with the component.",
          "readOnly": true,
          "items": {
            "$ref": "ConnectionParameters"
          },
          "type": "array"
        },
        "parameters": {
          "description": "Optional. A list of parameters associated with the component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "componentParameterSchema": {
          "type": "array",
          "description": "Output only. The component parameter schema, which includes possible parameter values.",
          "readOnly": true,
          "items": {
            "$ref": "ComponentParameterSchema"
          }
        }
      },
      "description": "Information about the component level parameters for an application."
    },
    "ProviderVersion": {
      "properties": {
        "source": {
          "description": "Output only. The provider source in the format: [hostname]/[namespace]/[name]. Hostname is optional, and defaults to the Terraform registry.",
          "readOnly": true,
          "type": "string"
        },
        "version": {
          "description": "Output only. Version constraint string.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "ProviderVersion defines the required version for a provider.",
      "id": "ProviderVersion",
      "type": "object"
    },
    "CompositeApplicationParameters": {
      "type": "object",
      "id": "CompositeApplicationParameters",
      "description": "Holds parameters that are specific to composite applications.",
      "properties": {
        "projectParametersMap": {
          "additionalProperties": {
            "$ref": "ProjectParametersList"
          },
          "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"
        },
        "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}",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      }
    },
    "ImportApplicationTemplateIaCResponse": {
      "properties": {
        "applicationTemplate": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "ApplicationTemplate"
        },
        "errors": {
          "description": "Errors encountered during import.",
          "items": {
            "$ref": "ImportIaCError"
          },
          "type": "array"
        },
        "state": {
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "description": "The state of the import.",
          "type": "string"
        }
      },
      "description": "Response message for ImportApplicationTemplateIaC method.",
      "id": "ImportApplicationTemplateIaCResponse",
      "type": "object"
    },
    "TemplateRequirements": {
      "description": "TemplateRequirements defines the roles required and the associated services that need to be enabled to provision Template resources.",
      "properties": {
        "providerVersions": {
          "type": "array",
          "description": "Required. Required provider versions.",
          "items": {
            "$ref": "ProviderVersion"
          }
        },
        "roles": {
          "description": "Required. All roles required for the component",
          "items": {
            "$ref": "TemplateRoles"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "TemplateRequirements"
    },
    "TerraformUiOutput": {
      "properties": {
        "outputMessage": {
          "type": "string",
          "description": "Output only. Message to be displayed in the UI.",
          "readOnly": true
        },
        "terraformUiOutputs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "TerraformUiOutputDisplay"
          },
          "description": "Output only. Visibility of the output.",
          "readOnly": true
        }
      },
      "description": "Terraform blueprint UI output.",
      "id": "TerraformUiOutput",
      "type": "object"
    },
    "LogicalProduct": {
      "description": "Represents a Product Main logical product.",
      "properties": {
        "title": {
          "type": "string",
          "description": "Output only. The display name of the logical product.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Output only. The resource name of the logical product. Format: logicalProducts/{logical_product}",
          "readOnly": true
        },
        "shortDescription": {
          "description": "Output only. A short description of the logical product.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "LogicalProduct"
    },
    "DeployApplicationRequest": {
      "id": "DeployApplicationRequest",
      "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"
        },
        "validateOnly": {
          "description": "Optional. If set to true, the request is validated, but no actual deployment will occur. See https://google.aip.dev/163 for more details.",
          "type": "boolean"
        },
        "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"
        }
      },
      "description": "Message for deploying an application."
    },
    "Empty": {
      "properties": {},
      "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); }",
      "id": "Empty",
      "type": "object"
    },
    "IaCModule": {
      "type": "object",
      "id": "IaCModule",
      "description": "IaCModule represents a single infrastructure as code module.",
      "properties": {
        "files": {
          "type": "array",
          "description": "Optional. The files in the module.",
          "items": {
            "$ref": "IaCFile"
          }
        }
      }
    },
    "ProjectParameters": {
      "properties": {
        "projectId": {
          "description": "Output only. The project ID of the project.",
          "readOnly": true,
          "type": "string"
        },
        "apis": {
          "description": "Output only. APIs required to be enabled to deploy the application, in the form of \"*.googleapis.com\".",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account to deploy the application in given project.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "The ProjectParameters provides the parameters needed to deploy the application in the given project.",
      "id": "ProjectParameters",
      "type": "object"
    },
    "UpdatedTemplateRevision": {
      "id": "UpdatedTemplateRevision",
      "type": "object",
      "properties": {
        "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"
        },
        "templateRevision": {
          "type": "string",
          "description": "Output only. The details of the updated template revision.",
          "readOnly": true
        },
        "createTime": {
          "description": "Output only. The time when the template was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      },
      "description": "The updated template revision, which results in an outdated application."
    },
    "ListApplicationTemplatesResponse": {
      "description": "Message for response to listing application templates.",
      "properties": {
        "applicationTemplates": {
          "description": "The list of application templates.",
          "items": {
            "$ref": "ApplicationTemplate"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "ListApplicationTemplatesResponse"
    },
    "GenerateAssessmentReportRequest": {
      "deprecated": true,
      "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.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Deprecated: Use GenerateTerraformPlanAssessmentReportRequest instead. Message for the request to generate a best practice report for a given Terraform plan.",
      "id": "GenerateAssessmentReportRequest",
      "type": "object"
    },
    "TemplateRoles": {
      "description": "Template Roles provide the level and roles",
      "properties": {
        "roles": {
          "type": "array",
          "description": "Required. List of roles.",
          "items": {
            "type": "string"
          }
        },
        "level": {
          "description": "Required. Level of the role.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "TemplateRoles"
    },
    "SnapshotApplicationTemplateRequest": {
      "description": "Message for snapshotting an application template asynchronously.",
      "properties": {},
      "type": "object",
      "id": "SnapshotApplicationTemplateRequest"
    },
    "TemplateUiOutputDisplayVariable": {
      "properties": {
        "visibility": {
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ],
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ],
          "description": "Required. Visibility of the output.",
          "type": "string"
        }
      },
      "description": "Additional display specific Template pertaining to a particular output variable.",
      "id": "TemplateUiOutputDisplayVariable",
      "type": "object"
    },
    "DeploymentFailureResolutionInfo": {
      "id": "DeploymentFailureResolutionInfo",
      "type": "object",
      "properties": {
        "resolutionLinkText": {
          "description": "Output only. Call to action link text.",
          "readOnly": true,
          "type": "string"
        },
        "resolutionMessage": {
          "description": "Output only. Elaborative error resolution message.",
          "readOnly": true,
          "type": "string"
        },
        "resolutionLink": {
          "description": "Output only. Link for the call to action.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "The call to action associated with the deployment issue."
    },
    "AuditLogConfig": {
      "id": "AuditLogConfig",
      "type": "object",
      "properties": {
        "logType": {
          "type": "string",
          "enumDescriptions": [
            "Default case. Should never be this.",
            "Admin reads. Example: CloudIAM getIamPolicy",
            "Data writes. Example: CloudSQL Users create",
            "Data reads. Example: CloudSQL Users list"
          ],
          "enum": [
            "LOG_TYPE_UNSPECIFIED",
            "ADMIN_READ",
            "DATA_WRITE",
            "DATA_READ"
          ],
          "description": "The log type that this config enables."
        },
        "exemptedMembers": {
          "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "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."
    },
    "FetchCatalogTemplateRevisionAssessmentReportResponse": {
      "description": "Response message for FetchCatalogTemplateRevisionAssessmentReport.",
      "properties": {
        "assessmentReport": {
          "description": "Assessment report for the catalog template revision.",
          "$ref": "AssessmentReport"
        }
      },
      "type": "object",
      "id": "FetchCatalogTemplateRevisionAssessmentReportResponse"
    },
    "DeploymentError": {
      "properties": {
        "deploymentFailureResolutionInfo": {
          "type": "array",
          "description": "Output only. The call to actions associated with the deployment issue.",
          "readOnly": true,
          "items": {
            "$ref": "DeploymentFailureResolutionInfo"
          }
        },
        "type": {
          "enumDescriptions": [
            "Unspecified error type.",
            "Permission related error.",
            "Quota related error.",
            "Resource already exists.",
            "Resource is unavailable.",
            "Billing related error.",
            "Generic error if error does not fall under any of the above.",
            "Terraform related error.",
            "Bad input error.",
            "Platform related error.",
            "API enablement error.",
            "Bad request error."
          ],
          "enum": [
            "ERROR_TYPE_UNSPECIFIED",
            "PERMISSION",
            "QUOTA",
            "ALREADY_EXISTS",
            "RESOURCE_UNAVAILABLE",
            "BILLING",
            "GENERIC",
            "TERRAFORM",
            "BAD_INPUT",
            "PLATFORM",
            "API_ENABLEMENT",
            "BAD_REQUEST"
          ],
          "description": "Output only. The error type based on the deployment error code.",
          "readOnly": true,
          "type": "string"
        },
        "detail": {
          "description": "Output only. Human readable string that summarizes the deployment error issue.",
          "readOnly": true,
          "type": "string"
        },
        "code": {
          "enumDescriptions": [
            "No error code was specified.",
            "The revision failed. See Revision for more details.",
            "Cloud Build failed due to a permission issue.",
            "Cloud Build job associated with a deployment deletion could not be started.",
            "Cloud Build job associated with a deployment deletion was started but failed.",
            "Cloud Storage bucket creation failed due to a permission issue.",
            "Cloud Storage bucket creation failed due to an issue unrelated to permissions.",
            "Failed to import values from an external source."
          ],
          "enum": [
            "ERROR_CODE_UNSPECIFIED",
            "REVISION_FAILED",
            "CLOUD_BUILD_PERMISSION_DENIED",
            "DELETE_BUILD_API_FAILED",
            "DELETE_BUILD_RUN_FAILED",
            "BUCKET_CREATION_PERMISSION_DENIED",
            "BUCKET_CREATION_FAILED",
            "EXTERNAL_VALUE_SOURCE_IMPORT_FAILED"
          ],
          "description": "Output only. The deployment error code. Based on Infrastructure Manager error codes.",
          "readOnly": true,
          "type": "string"
        },
        "tfErrors": {
          "type": "array",
          "description": "Output only. The error message associated with the deployment.",
          "readOnly": true,
          "items": {
            "$ref": "TerraformError"
          }
        },
        "errorMessage": {
          "type": "string",
          "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
        }
      },
      "description": "The error associated with the deployment.",
      "id": "DeploymentError",
      "type": "object"
    },
    "TerraformUiInputDisplayVariable": {
      "id": "TerraformUiInputDisplayVariable",
      "type": "object",
      "properties": {
        "title": {
          "description": "Output only. Title of the input.",
          "readOnly": true,
          "type": "string"
        },
        "alternateDefaults": {
          "description": "Output only. Alternate defaults for the input.",
          "readOnly": true,
          "items": {
            "$ref": "AlternateDefault"
          },
          "type": "array"
        },
        "validation": {
          "type": "string",
          "description": "Output only. Text describing the validation rules for the property. Typically shown after an invalid input. Optional. UTF-8 text. No markup. At most 128 characters.",
          "readOnly": true
        },
        "properties": {
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          },
          "description": "Output only. A map that defines all fields of the input variable.",
          "readOnly": true,
          "type": "object"
        },
        "toggleUsingVariables": {
          "description": "Output only. Variables used to toggle the display of another variable.",
          "readOnly": true,
          "items": {
            "$ref": "DisplayVariableToggle"
          },
          "type": "array"
        },
        "enumValueLabels": {
          "description": "Output only. Labels for enum values. Values must be UTF-8 text with no markup, and at most 64 characters.",
          "readOnly": true,
          "items": {
            "$ref": "ValueLabel"
          },
          "type": "array"
        },
        "max": {
          "type": "number",
          "format": "float",
          "description": "Output only. Maximum value for numeric types.",
          "readOnly": true
        },
        "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"
        },
        "min": {
          "type": "number",
          "format": "float",
          "description": "Output only. Minimum value for numeric types.",
          "readOnly": true
        },
        "displayName": {
          "description": "Output only. Display name of the input.",
          "readOnly": true,
          "type": "string"
        },
        "regexValidation": {
          "description": "Output only. Regex based validation rules for the variable.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Terraform blueprint UI input display variable."
    },
    "ListPoliciesResponse": {
      "id": "ListPoliciesResponse",
      "type": "object",
      "properties": {
        "policies": {
          "description": "A list of policies.",
          "items": {
            "$ref": "DesignCenterPolicy"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "description": "Message for response to listing policies."
    },
    "Policy": {
      "type": "object",
      "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/).",
      "properties": {
        "bindings": {
          "type": "array",
          "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`.",
          "items": {
            "$ref": "Binding"
          }
        },
        "auditConfigs": {
          "type": "array",
          "description": "Specifies cloud audit logging configuration for this policy.",
          "items": {
            "$ref": "AuditConfig"
          }
        },
        "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"
        },
        "etag": {
          "type": "string",
          "format": "byte",
          "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost."
        }
      }
    },
    "ImportApplicationTemplateIaCRequest": {
      "description": "Request message for ImportApplicationTemplateIaC method.",
      "properties": {
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI of the terraform code.",
          "type": "string"
        },
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        },
        "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"
        }
      },
      "type": "object",
      "id": "ImportApplicationTemplateIaCRequest"
    },
    "Location": {
      "id": "Location",
      "type": "object",
      "properties": {
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "labels": {
          "type": "object",
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "Service-specific metadata. For example the available capacity at the given location."
        }
      },
      "description": "A resource that represents a Google Cloud location."
    },
    "ValueLabelInput": {
      "id": "ValueLabelInput",
      "type": "object",
      "properties": {
        "value": {
          "description": "Optional. Value of the enum.",
          "type": "string"
        },
        "label": {
          "description": "Optional. Label of the enum.",
          "type": "string"
        }
      },
      "description": "Value label input for a UI."
    },
    "SerializedConnection": {
      "description": "Serialized connection.",
      "properties": {
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "destinationComponentParameters": {
          "type": "array",
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "uri": {
          "description": "Optional. The connection URI.",
          "type": "string"
        },
        "destinationComponentUri": {
          "description": "Optional. The destination component URI used to generate the connection.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "SerializedConnection"
    },
    "RolesAndApisConfig": {
      "id": "RolesAndApisConfig",
      "type": "object",
      "properties": {
        "roles": {
          "type": "array",
          "description": "Optional. IAM roles required to deploy the application within this project. Each role must be a valid IAM role name, such as `roles/editor`. The maximum number of roles allowed is 500.",
          "items": {
            "$ref": "RoleInfo"
          }
        },
        "projectId": {
          "description": "Required. The project ID to which these configurations apply. Format: {project_id}",
          "type": "string"
        },
        "apis": {
          "type": "array",
          "description": "Optional. APIs required to be enabled in this project for deploying the application, in the form of \"*.googleapis.com\". The maximum number of APIs allowed is 500.",
          "items": {
            "$ref": "ApiInfo"
          }
        }
      },
      "description": "Represents configurations required within a specific project to deploy the application."
    },
    "RootModuleDependency": {
      "id": "RootModuleDependency",
      "type": "object",
      "properties": {
        "rootModuleId": {
          "description": "Identifier of the root module.",
          "type": "string"
        },
        "parameters": {
          "type": "array",
          "description": "Parameters associated with this dependency.",
          "items": {
            "$ref": "Parameter"
          }
        }
      },
      "description": "Root module dependency."
    },
    "RemediationStep": {
      "id": "RemediationStep",
      "type": "object",
      "properties": {
        "remediationDocumentationUrl": {
          "description": "Optional. Remediation documentation URL.",
          "type": "string"
        },
        "note": {
          "description": "Optional. Any other note related to the remediation.",
          "type": "string"
        },
        "remediationSteps": {
          "description": "Required. A description of the steps that users can take to remediate the findings.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Remediation steps that can be taken to rectify the finding."
    },
    "TemplateUi": {
      "type": "object",
      "id": "TemplateUi",
      "description": "TemplateUi defines the UI related information for the Template.",
      "properties": {
        "input": {
          "description": "Required. The top-level input section that defines the list of variables and their sections on the deployment page.",
          "$ref": "TemplateUiInput"
        },
        "runtime": {
          "$ref": "TemplateUiOutput",
          "description": "Optional. The top-level output section that defines the list of outputs and their visibility on the deployment page."
        }
      }
    },
    "RootOutputVariable": {
      "description": "Output variable of a root module.",
      "properties": {
        "variable": {
          "description": "Name of the output variable.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "RootOutputVariable"
    },
    "TemplateVariable": {
      "type": "object",
      "id": "TemplateVariable",
      "description": "TemplateTerraform inputs.",
      "properties": {
        "name": {
          "description": "Required. Input variable name present in Terraform.",
          "type": "string"
        },
        "connections": {
          "description": "Required. Terraform input connections.",
          "items": {
            "$ref": "TemplateConnections"
          },
          "type": "array"
        }
      }
    },
    "SyncShareRequest": {
      "description": "Message for syncing a share of a catalog.",
      "properties": {},
      "type": "object",
      "id": "SyncShareRequest"
    },
    "Scope": {
      "properties": {
        "type": {
          "enumDescriptions": [
            "Unspecified type.",
            "Regional type.",
            "Global type."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "REGIONAL",
            "GLOBAL"
          ],
          "description": "Required. Scope Type.",
          "type": "string"
        }
      },
      "description": "Scope of an application.",
      "id": "Scope",
      "type": "object"
    },
    "DisplayVariable": {
      "id": "DisplayVariable",
      "type": "object",
      "properties": {
        "max": {
          "description": "Optional. Maximum value for numeric types.",
          "type": "number",
          "format": "float"
        },
        "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"
        },
        "title": {
          "description": "Required. Visible title for the variable on the UI.",
          "type": "string"
        },
        "alternateDefaults": {
          "type": "array",
          "description": "Optional. Alternate defaults for the input.",
          "items": {
            "$ref": "AlternateDefaultInput"
          }
        },
        "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"
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          },
          "description": "Optional. properties is a map defining all the fields of the input variable."
        },
        "enumValueLabels": {
          "type": "array",
          "description": "Optional. Labels for enum values. Values must be UTF-8 text with no markup, and at most 64 characters.",
          "items": {
            "$ref": "ValueLabelInput"
          }
        },
        "name": {
          "description": "Required. The variable name from the corresponding standard Template file.",
          "type": "string"
        },
        "min": {
          "description": "Optional. Minimum value for numeric types.",
          "type": "number",
          "format": "float"
        },
        "regexValidation": {
          "description": "Optional. Regex based validation rules for the variable.",
          "type": "string"
        },
        "subtext": {
          "description": "Optional. Property subtext, displayed below the title.",
          "type": "string"
        }
      },
      "description": "Additional display specific Template pertaining to a particular input variable."
    },
    "PreviewOperationMetadata": {
      "properties": {
        "previewStep": {
          "type": "string",
          "description": "Output only. The current step of the preview. The possible steps a preview may be running as returned by the Infrastructure. Manager.",
          "readOnly": true
        },
        "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.",
          "items": {
            "$ref": "Resource"
          },
          "type": "array"
        }
      },
      "description": "Ephemeral metadata depicting the state of the preview operation.",
      "id": "PreviewOperationMetadata",
      "type": "object"
    },
    "CodePosition": {
      "properties": {
        "line": {
          "description": "Output only. One-based line count of the relevant position.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "byteOffset": {
          "type": "integer",
          "format": "int32",
          "description": "Output only. Byte offset in the content.",
          "readOnly": true
        },
        "column": {
          "description": "Output only. One-based column count of the relevant position.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "CodePosition represents a code location.",
      "id": "CodePosition",
      "type": "object"
    },
    "Application": {
      "id": "Application",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. Display name of the application.",
          "type": "string"
        },
        "state": {
          "enumDescriptions": [
            "Unspecified application deployment state.",
            "Application is in draft.",
            "New application deployment is in progress.",
            "Update application deployment is in progress.",
            "Delete application deployment is in progress.",
            "Application deployment is completed.",
            "Application deployment is deleted.",
            "Application deployment is failed.",
            "Application deployment is in progress."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED",
            "DEPLOYING"
          ],
          "description": "Output only. Deployment state of the application.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentMetadata": {
          "description": "Output only. Deployment metadata of the application.",
          "readOnly": true,
          "$ref": "DeploymentMetadata"
        },
        "deploymentTarget": {
          "$ref": "DeploymentTarget",
          "description": "Optional. The deployment target of the application."
        },
        "scope": {
          "description": "Required. Scope of the application.",
          "$ref": "Scope"
        },
        "paramsUpdateStrategy": {
          "type": "string",
          "enumDescriptions": [
            "Retains the existing value for the field.",
            "Replaces the existing field values with the provided ones."
          ],
          "enum": [
            "UPDATE_STRATEGY_UNSPECIFIED",
            "REPLACE"
          ],
          "description": "Optional. Specifies the strategy to use when updating the application parameters while updating the application template revision."
        },
        "templateMetadata": {
          "description": "Output only. The input output variables parsed from the imported terraform code.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "updateTime": {
          "description": "Output only. Update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "iacSource": {
          "description": "Output only. Indicates the IaC source format of this application.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ],
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ]
        },
        "previewReference": {
          "type": "string",
          "description": "Output only. Preview reference for the application.",
          "readOnly": true
        },
        "description": {
          "description": "Optional. Description of the application.",
          "type": "string"
        },
        "deploymentRegion": {
          "description": "Optional. The region where the application is deployed.",
          "type": "string"
        },
        "compositionType": {
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "ApplicationCompositionType is STANDARD. The applicationTemplate or application is composed of components only of type service/workload/asset and has a single root module in terraform code.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "description": "Output only. The composition type of the application: STANDARD OR COMPOSITE.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Optional. The type of the application.",
          "enumDescriptions": [
            "Application type is unspecified.",
            "Application type is terraform application.",
            "Application type is helm application."
          ],
          "enum": [
            "APPLICATION_TYPE_UNSPECIFIED",
            "TERRAFORM_APP",
            "HELM_APP"
          ]
        },
        "name": {
          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
          "type": "string"
        },
        "componentParameters": {
          "description": "Optional. A list of component parameters to associate with the application.",
          "items": {
            "$ref": "ComponentParameters"
          },
          "type": "array"
        },
        "artifactLocation": {
          "$ref": "ArtifactLocation",
          "description": "Output only. Details of the location where the IaC for this application was last successfully exported.",
          "readOnly": true
        },
        "rolesApisConfig": {
          "description": "Optional. Project-specific configurations required for application deployment, including IAM roles and APIs. The list can contain up to 100 items.",
          "items": {
            "$ref": "RolesAndApisConfig"
          },
          "type": "array"
        },
        "createTime": {
          "description": "Output only. Create timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "projectParameters": {
          "description": "Output only. List of project parameters for the application.",
          "readOnly": true,
          "items": {
            "$ref": "ProjectParameters"
          },
          "type": "array"
        },
        "appParameters": {
          "description": "Optional. A list of parameters to attach to the deployment source object, which is a catalog entry or application template snapshot.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "connectionConfigs": {
          "type": "array",
          "description": "Optional. Connection configuration for the application.",
          "items": {
            "$ref": "ConnectionConfig"
          }
        },
        "source": {
          "description": "Required. The application deployment source.",
          "$ref": "DeploymentSource"
        },
        "deploymentRevision": {
          "description": "Output only. [Output only] Optional Infra Manager deployment Id with revision",
          "readOnly": true,
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. Your own service account that you use to deploy an application.",
          "type": "string"
        },
        "serializedApplicationTemplate": {
          "$ref": "SerializedApplicationTemplate",
          "description": "Output only. [Output only] Serialized application template.",
          "readOnly": true
        },
        "importExistingResources": {
          "description": "Optional. Import existing resources into the application.",
          "type": "boolean"
        },
        "compositeApplicationParameters": {
          "description": "Optional. Parameters that are required for composite applications.",
          "$ref": "CompositeApplicationParameters"
        },
        "apphubApplication": {
          "description": "Output only. The App Hub App associated with the application.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentGroupMetadata": {
          "$ref": "DeploymentGroupMetadata",
          "description": "Output only. The deployment group metadata of the application. This is applicable only for composite applications.",
          "readOnly": true
        },
        "attributes": {
          "description": "Optional. Attributes of the application.",
          "$ref": "Attributes"
        },
        "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"
        }
      },
      "description": "Represents the application resource."
    },
    "CodeRange": {
      "description": "CodeRange represents a portion of code.",
      "properties": {
        "end": {
          "$ref": "CodePosition",
          "description": "Output only. End position.",
          "readOnly": true
        },
        "start": {
          "$ref": "CodePosition",
          "description": "Output only. Start position.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "CodeRange"
    },
    "AdcMetadata": {
      "description": "Application Design Center specific information and metadata.",
      "properties": {
        "applicationUri": {
          "description": "Output only. Application URI",
          "readOnly": true,
          "type": "string"
        },
        "spaceUri": {
          "description": "Output only. Space URI",
          "readOnly": true,
          "type": "string"
        },
        "catalogTemplateRevisionUri": {
          "type": "string",
          "description": "Output only. CatalogTemplateRevision URI",
          "readOnly": true
        },
        "applicationTemplateUri": {
          "type": "string",
          "description": "Output only. ApplicationTemplate URI",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "AdcMetadata"
    },
    "GitReference": {
      "description": "The Git reference. Can be a commit SHA, branch name, or tag name.",
      "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"
        }
      },
      "type": "object",
      "id": "GitReference"
    },
    "TerraformInputConnections": {
      "type": "object",
      "id": "TerraformInputConnections",
      "description": "TerraformInputConnections",
      "properties": {
        "cftTemplateVersion": {
          "type": "string",
          "description": "Output only. Version of the other template that can be connected to.",
          "readOnly": true
        },
        "outputVar": {
          "description": "Output only. Output variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        },
        "cftTemplateUri": {
          "type": "string",
          "description": "Output only. List of other templates that can be connected to.",
          "readOnly": true
        },
        "inputPath": {
          "type": "string",
          "description": "Output only. Input path of the other template that can be connected to.",
          "readOnly": true
        }
      }
    },
    "TestIamPermissionsResponse": {
      "type": "object",
      "id": "TestIamPermissionsResponse",
      "description": "Response message for `TestIamPermissions` method.",
      "properties": {
        "permissions": {
          "type": "array",
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "MetadataInputSpec": {
      "id": "MetadataInputSpec",
      "type": "object",
      "properties": {
        "interfaces": {
          "$ref": "TemplateSchema",
          "description": "Optional. TemplateSchemas provides the input variables lists and connection information."
        },
        "requirements": {
          "description": "Required. TemplateRequirements defines the roles required and the provider versions.",
          "$ref": "TemplateRequirements"
        },
        "info": {
          "$ref": "TemplateInfo",
          "description": "Optional. TemplateInfo provides the actuation tool information."
        },
        "ui": {
          "$ref": "TemplateUi",
          "description": "Optional. TemplateUi defines the UI related information for the Template."
        }
      },
      "description": "Specifications for the input"
    },
    "DeveloperConnectExportConfig": {
      "type": "object",
      "id": "DeveloperConnectExportConfig",
      "description": "Through Developer Connect, defines a location where content such as Infrastructure as Code (IaC) is stored.",
      "properties": {
        "dir": {
          "description": "Required. Directory, relative to the source repo, where content such as Infrastructure as Code (IaC) will be stored. This must be a relative path.To specify the root directory, use '/'. If the path or any subdirectories do not exist, they will be created.",
          "type": "string"
        },
        "branch": {
          "description": "Optional. The branch in repo to which the content such as Infrastructure as Code (IaC) should be written to. If empty, Application Design Center will create a branch and push the changes.",
          "type": "string"
        },
        "developerConnectRepoUri": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.",
          "type": "string"
        },
        "commitSha": {
          "type": "string",
          "description": "Output only. The SHA of the Git commit that contains the exported content such as Infrastructure as Code (IaC).",
          "readOnly": true
        }
      }
    },
    "GKEDeploymentTarget": {
      "id": "GKEDeploymentTarget",
      "type": "object",
      "properties": {
        "clusterSelfLink": {
          "description": "Required. The self link of the cluster where GKE based application is deployed.",
          "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"
        },
        "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"
        }
      },
      "description": "The GKE deployment target."
    },
    "TerraformOutput": {
      "type": "object",
      "id": "TerraformOutput",
      "description": "Terraform outputs.",
      "properties": {
        "description": {
          "description": "Output only. Description of the Terraform varaiable.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "type": "any",
          "description": "Output only. Type of Terraform output.",
          "readOnly": true
        },
        "terraformOutputVariable": {
          "type": "string",
          "description": "Output only. Output variable name present in Terraform.",
          "readOnly": true
        }
      }
    },
    "TerraformError": {
      "description": "Errors encountered during actuation using Terraform",
      "properties": {
        "errorDescription": {
          "description": "A human-readable error description.",
          "type": "string"
        },
        "httpResponseCode": {
          "type": "integer",
          "format": "int32",
          "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."
        },
        "error": {
          "$ref": "Status",
          "description": "Output only. Original error response from underlying Google API, if available.",
          "readOnly": true
        },
        "resourceAddress": {
          "description": "Address of the resource associated with the error, e.g. `google_compute_network.vpc_network`.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "TerraformError"
    },
    "ListApplicationTemplateRevisionsResponse": {
      "properties": {
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        },
        "applicationTemplateRevisions": {
          "type": "array",
          "description": "The list of application template revisions.",
          "items": {
            "$ref": "ApplicationTemplateRevision"
          }
        },
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Message for response to listing application template revisions.",
      "id": "ListApplicationTemplateRevisionsResponse",
      "type": "object"
    },
    "ConnectionSource": {
      "description": "Defines the source of a connection.",
      "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"
        }
      },
      "type": "object",
      "id": "ConnectionSource"
    },
    "GenerateApplicationIaCResponse": {
      "id": "GenerateApplicationIaCResponse",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application.",
          "$ref": "RootModulesMetadata"
        },
        "gcsUri": {
          "description": "DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI of the generated IaC.",
          "deprecated": true,
          "type": "string"
        }
      },
      "description": "Response message for GenerateApplicationIaC method."
    },
    "Catalog": {
      "id": "Catalog",
      "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"
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The catalog creation timestamp.",
          "readOnly": true
        },
        "description": {
          "description": "Optional. The catalog description.",
          "type": "string"
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The catalog update timestamp.",
          "readOnly": true
        }
      },
      "description": "A catalog is a collection of templates."
    },
    "InferredMetadata": {
      "description": "Inferred metadata.",
      "properties": {
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Inferred metadata update timestamp.",
          "readOnly": true
        },
        "description": {
          "description": "Output only. Inferred description.",
          "readOnly": true,
          "type": "string"
        },
        "templateMetadata": {
          "$ref": "TFBlueprintMetadata",
          "description": "Output only. Inferred template metadata related to Terraform input and output.",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Inferred metadata creation timestamp.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "InferredMetadata"
    },
    "FetchFrameworksResponse": {
      "type": "object",
      "id": "FetchFrameworksResponse",
      "description": "Response for FetchFrameworks rpc",
      "properties": {
        "frameworks": {
          "description": "The list of frameworks.",
          "items": {
            "$ref": "Framework"
          },
          "type": "array"
        },
        "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"
        }
      }
    },
    "ImportApplicationIaCRequest": {
      "properties": {
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI of the terraform code.",
          "type": "string"
        },
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        },
        "iacModule": {
          "$ref": "IaCModule",
          "description": "Optional. The IaC module to import."
        },
        "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"
        }
      },
      "description": "Request message for ImportApplicationIaC method.",
      "id": "ImportApplicationIaCRequest",
      "type": "object"
    },
    "Parameter": {
      "id": "Parameter",
      "type": "object",
      "properties": {
        "key": {
          "description": "Required. The key of the parameter.",
          "type": "string"
        },
        "value": {
          "description": "Optional. The value of the parameter.",
          "type": "any"
        }
      },
      "description": "Parameter resource."
    },
    "ListConnectionsResponse": {
      "description": "Message for response to listing connections.",
      "properties": {
        "connections": {
          "type": "array",
          "description": "The list of connections.",
          "items": {
            "$ref": "Connection"
          }
        },
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ListConnectionsResponse"
    },
    "ListSharedTemplateRevisionsResponse": {
      "id": "ListSharedTemplateRevisionsResponse",
      "type": "object",
      "properties": {
        "sharedTemplateRevisions": {
          "description": "The list of shared templates.",
          "items": {
            "$ref": "SharedTemplateRevision"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "description": "Message for response to listing shared templates."
    },
    "GenerateApplicationTemplateRevisionIaCRequest": {
      "type": "object",
      "id": "GenerateApplicationTemplateRevisionIaCRequest",
      "description": "Request message for GenerateApplicationTemplateRevisionIaC method.",
      "properties": {
        "iacFormat": {
          "type": "string",
          "description": "Optional. The IaC format to generate.",
          "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"
        }
      }
    },
    "FindingADCMetadata": {
      "type": "object",
      "id": "FindingADCMetadata",
      "description": "Metadata related to the Application Design Center with the finding.",
      "properties": {
        "componentName": {
          "type": "string",
          "description": "Output only. Component the finding belongs to.",
          "readOnly": true
        }
      }
    },
    "ProvisionDeploymentGroupOperationMetadata": {
      "id": "ProvisionDeploymentGroupOperationMetadata",
      "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": {
          "type": "array",
          "description": "Output only. List of deployment unit deployment progress",
          "readOnly": true,
          "items": {
            "$ref": "DeploymentUnitProgress"
          }
        }
      },
      "description": "Represents the Provision Deployment Group operation metadata."
    },
    "Component": {
      "type": "object",
      "id": "Component",
      "description": "Component resource.",
      "properties": {
        "useAsRootModule": {
          "description": "Optional. Whether the component is exported as a separate terraform root module in a composite application template. If this is false, then native components will be exported as a submodule of a separate terraform root module.",
          "type": "boolean"
        },
        "apis": {
          "description": "Output only. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "componentParameterSchema": {
          "description": "Output only. The component parameter schema, which includes possible parameter values. values.",
          "readOnly": true,
          "items": {
            "$ref": "ComponentParameterSchema"
          },
          "type": "array"
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The component update timestamp.",
          "readOnly": true
        },
        "roles": {
          "type": "array",
          "description": "Output only. IAM roles required by the service account to deploy the component.",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "parameters": {
          "type": "array",
          "description": "Optional. The component parameters.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The component creation timestamp.",
          "readOnly": true
        },
        "connectionsParameters": {
          "type": "array",
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "items": {
            "$ref": "ConnectionParameters"
          }
        },
        "name": {
          "description": "Identifier. The component name.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        },
        "sharedTemplateRevisionUri": {
          "description": "Required. Immutable. The shared template used to generate the component.",
          "type": "string"
        },
        "applicationInfo": {
          "$ref": "ComponentApplicationInfo",
          "description": "Optional. The application associated with the component."
        }
      }
    },
    "GenerateApplicationTemplateAssessmentReportRequest": {
      "description": "Message for generate assessment report application template.",
      "properties": {
        "serviceAccount": {
          "description": "Optional. Deprecated: This field is no longer used since we moved to fast plan assessment. - This service account will be used to execute the preview process. - The caller must have the 'iam.serviceAccounts.actAs' permission on this service account. Format: projects/{PROJECT}/serviceAccounts/{EMAIL_ADDRESS}",
          "deprecated": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "GenerateApplicationTemplateAssessmentReportRequest"
    },
    "TerraformUiInput": {
      "properties": {
        "terraformUiInputs": {
          "type": "object",
          "description": "Output only. Terraform UI inputs.",
          "readOnly": true,
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          }
        }
      },
      "description": "Terraform blueprint UI input.",
      "id": "TerraformUiInput",
      "type": "object"
    },
    "ListSharesResponse": {
      "description": "Message for response to listing shares of a catalog.",
      "properties": {
        "shares": {
          "description": "The list of shares.",
          "items": {
            "$ref": "Share"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ListSharesResponse"
    },
    "ImportApplicationTemplateRequest": {
      "id": "ImportApplicationTemplateRequest",
      "type": "object",
      "properties": {
        "serializedApplicationTemplate": {
          "$ref": "SerializedApplicationTemplate",
          "description": "Optional. The serialized application template to be imported."
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "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\", }"
        },
        "sharedTemplateRevisionUri": {
          "description": "Optional. The source URI for catalog template.",
          "type": "string"
        },
        "applicationTemplateRevisionUri": {
          "description": "Optional. The source URI for application template revision.",
          "type": "string"
        },
        "applicationTemplateSystemRevision": {
          "description": "Optional. The system revision to be imported. Used when user tries to Restore (rev X) or perform Undo/Redo operations.",
          "type": "string"
        }
      },
      "description": "Request message for ImportApplicationTemplate method."
    },
    "AlternateDefaultInput": {
      "id": "AlternateDefaultInput",
      "type": "object",
      "properties": {
        "type": {
          "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"
          ],
          "description": "Optional. Type of alternate default.",
          "type": "string"
        },
        "value": {
          "description": "Optional. Value of the alternate default.",
          "type": "any"
        }
      },
      "description": "Alternate default input for a UI."
    },
    "ConnectionParameters": {
      "properties": {
        "connection": {
          "description": "Required. The name of the connection parameter.",
          "type": "string"
        },
        "parameters": {
          "description": "Optional. A list of parameters associated with the connection.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        }
      },
      "description": "Connection level parameters associated with each component within an application.",
      "id": "ConnectionParameters",
      "type": "object"
    },
    "Channel": {
      "properties": {
        "uri": {
          "description": "Required. URI of the channel.",
          "type": "string"
        }
      },
      "description": "Separate message to accommodate custom formats across IRC and Slack.",
      "id": "Channel",
      "type": "object"
    },
    "DomainRedirectInfo": {
      "type": "object",
      "id": "DomainRedirectInfo",
      "description": "Information on how to redirect to domain.",
      "properties": {
        "url": {
          "description": "Required. URL to the domain page.",
          "type": "string"
        },
        "openInSameTab": {
          "description": "Optional. Flag to open the URL in new tab. Default: false.",
          "type": "boolean"
        },
        "urlText": {
          "description": "Required. Text to display in UI on the redirect URL.",
          "type": "string"
        }
      }
    },
    "Environment": {
      "id": "Environment",
      "type": "object",
      "properties": {
        "environment": {
          "deprecated": true,
          "type": "string",
          "description": "Optional. Environment name. Can contain only lowercase letters, numeric characters, underscores, and dashes. Can have a maximum length of 63 characters. Deprecated: Please refer to type instead."
        },
        "type": {
          "description": "Required. Environment Type.",
          "enumDescriptions": [
            "Unspecified type.",
            "Production environment.",
            "Staging environment.",
            "Test environment.",
            "Development environment."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "PRODUCTION",
            "STAGING",
            "TEST",
            "DEVELOPMENT"
          ],
          "type": "string"
        }
      },
      "description": "Environment of the Application, Service, or Workload"
    },
    "ComponentOutputParameters": {
      "id": "ComponentOutputParameters",
      "type": "object",
      "properties": {
        "component": {
          "type": "string",
          "description": "Output only. The component name of the output parameters.",
          "readOnly": true
        },
        "parameters": {
          "description": "Output only. The output parameters of the component.",
          "readOnly": true,
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        }
      },
      "description": "The component output parameters of the deployment."
    },
    "GenerateApplicationIaCRequest": {
      "properties": {
        "iacFormat": {
          "type": "string",
          "description": "Optional. The IaC format to generate.",
          "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"
        },
        "gcsUri": {
          "deprecated": true,
          "type": "string",
          "description": "Optional. DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI to write the generated IaC to."
        }
      },
      "description": "Request message for GenerateApplicationIaC method.",
      "id": "GenerateApplicationIaCRequest",
      "type": "object"
    },
    "DeploymentAttemptMetadata": {
      "properties": {
        "errorDetail": {
          "description": "Human readable string that summarizes the deployment error issue.",
          "type": "string"
        },
        "build": {
          "description": "The build or execution ID associated with this specific attempt. This can be used to link back to logs or trace information.",
          "type": "string"
        },
        "attempt": {
          "description": "The sequential number of the attempt (starting from 1).",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "DeploymentAttemptMetadata represents a previous deployment attempt for an operation that failed due to a retryable error.",
      "id": "DeploymentAttemptMetadata",
      "type": "object"
    },
    "HelmChartInput": {
      "description": "Helm Chart inputs. Documentation: https://helm.sh/docs/",
      "properties": {
        "helmInputVariable": {
          "description": "Output only. Input variable name present in Helm Chart values.yaml",
          "readOnly": true,
          "type": "string"
        },
        "defaultValue": {
          "type": "any",
          "description": "Output only. The default value of the input variable.",
          "readOnly": true
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        },
        "type": {
          "type": "string",
          "description": "Output only. Input data type.",
          "readOnly": true
        },
        "nestedInputs": {
          "description": "Output only. Contains details of nested inputs.",
          "readOnly": true,
          "additionalProperties": {
            "$ref": "HelmChartInput"
          },
          "type": "object"
        },
        "description": {
          "description": "Output only. Input variable description.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "HelmChartInput"
    },
    "ListApplicationsResponse": {
      "properties": {
        "applications": {
          "type": "array",
          "description": "The list of applications.",
          "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": {
          "type": "array",
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Message for response to listing applications.",
      "id": "ListApplicationsResponse",
      "type": "object"
    },
    "SkippedDomain": {
      "id": "SkippedDomain",
      "type": "object",
      "properties": {
        "domain": {
          "$ref": "Domain",
          "description": "Output only. Details of the domain skipped.",
          "readOnly": true
        },
        "skipReason": {
          "type": "string",
          "description": "Output only. Reason for skipping the domain from assessment.",
          "readOnly": true,
          "enumDescriptions": [
            "No reason specified.",
            "Domain is unavailable.",
            "Domain assessment failed.",
            "Domain assessment timed out."
          ],
          "enum": [
            "REASON_UNSPECIFIED",
            "UNAVAILABLE",
            "FAILURE",
            "TIMEOUT"
          ]
        }
      },
      "description": "Domains skipped during the best practice assessment."
    },
    "ApplicationOperationMetadata": {
      "description": "Ephemeral metadata depicting the state of the delete operation.",
      "properties": {
        "step": {
          "type": "string",
          "description": "Output only. The current step of the delete operation. Associated with Infrastructure Manager and App Hub.",
          "readOnly": true
        },
        "build": {
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with the delete operation.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "ApplicationOperationMetadata"
    },
    "ComponentParameterSchema": {
      "description": "Component parameter schema, which contains a list of all component parameters.",
      "properties": {
        "type": {
          "description": "Output only. The type of the parameter.",
          "readOnly": true,
          "type": "string"
        },
        "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": "object",
      "id": "ComponentParameterSchema"
    },
    "SCCMetadata": {
      "id": "SCCMetadata",
      "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"
        }
      },
      "description": "SCC metadata for the assessment finding."
    },
    "Binding": {
      "properties": {
        "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`.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "role": {
          "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).",
          "type": "string"
        },
        "condition": {
          "$ref": "Expr",
          "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)."
        }
      },
      "description": "Associates `members`, or principals, with a `role`.",
      "id": "Binding",
      "type": "object"
    },
    "GenerateAssessmentReportOperationMetadata": {
      "description": "Ephemeral metadata depicting the state of assessment report generation.",
      "properties": {
        "step": {
          "type": "string",
          "description": "Output only. The current step of the generate assessment report operation.",
          "readOnly": true,
          "enumDescriptions": [
            "Unspecified step.",
            "Generating Terraform fast plan.",
            "Generating BPBD assessment report.",
            "Succeeded.",
            "Failed."
          ],
          "enum": [
            "ASSESSMENT_STEP_UNSPECIFIED",
            "FAST_PLAN",
            "ASSESSMENT_REPORT",
            "SUCCEEDED",
            "FAILED"
          ]
        }
      },
      "type": "object",
      "id": "GenerateAssessmentReportOperationMetadata"
    },
    "RootInputVariable": {
      "description": "Input variable of a root module.",
      "properties": {
        "defaultValue": {
          "description": "Default value of the input variable.",
          "type": "any"
        },
        "variableType": {
          "description": "Type of the input variable.",
          "type": "string"
        },
        "variable": {
          "description": "Name of the input variable.",
          "type": "string"
        },
        "value": {
          "description": "Value for the input variable.",
          "type": "any"
        }
      },
      "type": "object",
      "id": "RootInputVariable"
    },
    "DeploymentOperationMetadata": {
      "id": "DeploymentOperationMetadata",
      "type": "object",
      "properties": {
        "deployment": {
          "description": "Output only. The name of the deployment associated with the application.",
          "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.",
          "items": {
            "$ref": "Resource"
          },
          "type": "array"
        },
        "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": {
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true
        },
        "previousAttempt": {
          "description": "Previous deployment attempt metadata.",
          "$ref": "DeploymentAttemptMetadata"
        }
      },
      "description": "Ephemeral metadata depicting the state of the deployment operation."
    },
    "GenerateApplicationTemplateIaCRequest": {
      "description": "Request message for GenerateApplicationTemplateIaC method.",
      "properties": {
        "iacFormat": {
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "description": "Optional. The IaC format to generate.",
          "type": "string"
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        },
        "gcsUri": {
          "deprecated": true,
          "type": "string",
          "description": "Optional. DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI to write the generated IaC to."
        }
      },
      "type": "object",
      "id": "GenerateApplicationTemplateIaCRequest"
    },
    "GenerateTerraformPlanAssessmentReportRequest": {
      "type": "object",
      "id": "GenerateTerraformPlanAssessmentReportRequest",
      "description": "Message for the request to generate a best practice report for a given Terraform plan at the collection level.",
      "properties": {
        "terraformPlan": {
          "description": "Required. The raw JSON representation of the generated Terraform plan, provided as bytes.",
          "type": "string",
          "format": "byte"
        },
        "additionalFrameworks": {
          "type": "array",
          "description": "Optional. Additional Frameworks to run assessment against. If empty, run against default frameworks. Frameworks refers to the policies.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "PreviewApplicationRequest": {
      "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"
        }
      },
      "description": "Message for previewing an application.",
      "id": "PreviewApplicationRequest",
      "type": "object"
    },
    "DeployedResource": {
      "id": "DeployedResource",
      "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"
        },
        "location": {
          "description": "Optional. The location of the deployed resource.",
          "type": "string"
        },
        "project": {
          "description": "Optional. The project ID of the deployed resource.",
          "type": "string"
        }
      },
      "description": "DeployedResource represents a single deployed GCP resource."
    },
    "CatalogTemplateRevision": {
      "type": "object",
      "id": "CatalogTemplateRevision",
      "description": "Template revisions inside a catalog.",
      "properties": {
        "uuid": {
          "description": "Output only. UUID of the template revision.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Identifier. The catalog template revision name. `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template/revisions/$revision`",
          "type": "string"
        },
        "state": {
          "enumDescriptions": [
            "Default.",
            "The template is being validated.",
            "The template is ready to be used.",
            "The template is invalid."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "VALIDATING",
            "ACTIVE",
            "INVALID"
          ],
          "type": "string",
          "description": "Output only. The template state (validating/ready/invalid).",
          "readOnly": true
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "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"
        },
        "applicationParameters": {
          "type": "array",
          "description": "Optional. The values provided for the input variables.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "logicalProducts": {
          "type": "array",
          "description": "Output only. The Product Main logical product type information.",
          "readOnly": true,
          "items": {
            "$ref": "LogicalProduct"
          }
        },
        "resourceTypes": {
          "type": "array",
          "description": "Output only. The resource types present in the template revision.",
          "readOnly": true,
          "items": {
            "$ref": "ResourceType"
          }
        },
        "metadataInput": {
          "description": "Optional. Metadata input.",
          "$ref": "MetadataInput"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "templateMetadata": {
          "description": "Output only. Template metadata related to Terraform input and output.",
          "readOnly": true,
          "$ref": "TFBlueprintMetadata"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "iacSource": {
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ],
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ],
          "description": "Output only. Indicates the IaC source format of this catalog template revision.",
          "readOnly": true,
          "type": "string"
        },
        "applicationTemplateRevision": {
          "description": "Output only. The application template revision.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "helmChartMetadata": {
          "$ref": "HelmChartMetadata",
          "description": "Output only. The helm chart metadata.",
          "readOnly": true
        },
        "description": {
          "description": "Optional. The catalog template revision description.",
          "type": "string"
        },
        "templateCategory": {
          "description": "Output only. The category of the template.",
          "readOnly": true,
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ]
        },
        "annotations": {
          "type": "object",
          "description": "Optional. The annotations of the template revision. Key is the annotation name. Value is the annotation value.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "gcsSourceUri": {
          "deprecated": true,
          "type": "string",
          "description": "Optional. Deprecated: Added new field tf_module_gcs_uri. The Cloud Storage URI, which must be in the format gs://[bucket] or gs://[bucket]/[object]."
        },
        "type": {
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "type": "string",
          "description": "Optional. The Application Design Center application template type."
        }
      }
    },
    "GenerateApplicationAssessmentReportRequest": {
      "type": "object",
      "id": "GenerateApplicationAssessmentReportRequest",
      "description": "Message for generating an application assessment report.",
      "properties": {}
    },
    "RegisterDeployedApplicationRequest": {
      "description": "Request message for RegisterDeployedApplication method.",
      "properties": {
        "tfstateSignedGcsUri": {
          "description": "A securely signed Cloud Storage URI pointing to the tfstate file. The URI must be signed to grant the service temporary read access to the state file. Application Design Center imposes a limit on the maximum size of the state file accessed via this URI.",
          "type": "string"
        },
        "terraformState": {
          "description": "The Terraform state (tfstate) content as a raw string. For large state files exceeding 10MB, use the 'tfstate_signed_gcs_uri' field instead.",
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. The optional Service Account (SA) to use for calling AppHub APIs during registration. If not provided, the End-User Credentials (EUC) will be used. If provided, the EUC must have the 'serviceAccountTokenCreator' role on the SA, and the SA must have the necessary permissions for AppHub registration.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "RegisterDeployedApplicationRequest"
    },
    "FetchApplicationAssessmentReportResponse": {
      "id": "FetchApplicationAssessmentReportResponse",
      "type": "object",
      "properties": {
        "assessmentReport": {
          "$ref": "AssessmentReport",
          "description": "Assessment report for the application."
        }
      },
      "description": "Message for response of fetching an application assessment report."
    },
    "Operation": {
      "id": "Operation",
      "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": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "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."
        },
        "response": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "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"
        },
        "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"
        }
      },
      "description": "This resource represents a long-running operation that is the result of a network API call."
    },
    "ApplicationOutputParameters": {
      "id": "ApplicationOutputParameters",
      "type": "object",
      "properties": {
        "helmApplicationOutputParameters": {
          "$ref": "HelmApplicationOutputParameters",
          "description": "Output only. Helm application output parameters.",
          "readOnly": true
        }
      },
      "description": "The application output parameters of the deployment."
    },
    "InferConnectionsRequest": {
      "id": "InferConnectionsRequest",
      "type": "object",
      "properties": {
        "catalogTemplateRevisionUris": {
          "type": "array",
          "description": "Optional. A list of Catalog template revisions that you want to infer connections for. If you don't provide this, the system infers connections for the latest revisions of all catalog templates in all the catalogs present in the space.",
          "items": {
            "type": "string"
          }
        },
        "useGemini": {
          "description": "Optional. Whether to use Gemini.",
          "type": "boolean"
        }
      },
      "description": "Request message for InferConnections method."
    },
    "AlternateDefault": {
      "type": "object",
      "id": "AlternateDefault",
      "description": "Alternate default for a UI input.",
      "properties": {
        "type": {
          "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"
          ],
          "description": "Output only. Type of alternate default.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "Output only. Value of the alternate default.",
          "readOnly": true,
          "type": "any"
        }
      }
    },
    "HelmChartMetadata": {
      "description": "Helm Chart metadata.",
      "properties": {
        "helmInput": {
          "description": "Output only. Helm Chart inputs.",
          "readOnly": true,
          "items": {
            "$ref": "HelmChartInput"
          },
          "type": "array"
        },
        "helmOutput": {
          "description": "Output only. Helm Chart outputs.",
          "readOnly": true,
          "items": {
            "$ref": "HelmChartOutput"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "HelmChartMetadata"
    },
    "DesignCenterPolicy": {
      "properties": {
        "updateTime": {
          "description": "Output only. The policy update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        },
        "policyType": {
          "enumDescriptions": [
            "Default.",
            "Compliance framework policy."
          ],
          "enum": [
            "POLICY_TYPE_UNSPECIFIED",
            "COMPLIANCE_FRAMEWORK"
          ],
          "description": "Required. The policy type. Policy type is used to determine the domain of the policy.",
          "type": "string"
        },
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "applyConditions": {
          "type": "array",
          "description": "Optional. Conditions for applying the policy. Condition accepts the `criticality` and `environment` parameters from the application template.",
          "items": {
            "$ref": "ApplyCondition"
          }
        },
        "createTime": {
          "description": "Output only. The policy creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "description": {
          "description": "Optional. The policy description.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The policy display name.",
          "type": "string"
        }
      },
      "description": "A Policy is a resource within an Application Template that refers to a Policy that you author outside of Application Design Center and attach to an application template.",
      "id": "DesignCenterPolicy",
      "type": "object"
    },
    "Attributes": {
      "description": "Consumer provided attributes.",
      "properties": {
        "businessOwners": {
          "description": "Optional. Business team that ensures user needs are met and value is delivered",
          "items": {
            "$ref": "ContactInfo"
          },
          "type": "array"
        },
        "operatorOwners": {
          "type": "array",
          "description": "Optional. Operator team that ensures runtime and operations.",
          "items": {
            "$ref": "ContactInfo"
          }
        },
        "environment": {
          "description": "Optional. User-defined environment information.",
          "$ref": "Environment"
        },
        "developerOwners": {
          "description": "Optional. Developer team that owns development and coding.",
          "items": {
            "$ref": "ContactInfo"
          },
          "type": "array"
        },
        "criticality": {
          "description": "Optional. User-defined criticality information.",
          "$ref": "Criticality"
        }
      },
      "type": "object",
      "id": "Attributes"
    },
    "Resource": {
      "properties": {
        "name": {
          "description": "Output only. Identifier. The name of the resource.",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "description": "Output only. Current state of the resource.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The default value. This value is used if the state is omitted.",
            "Resource has been planned for reconcile.",
            "Resource is actively reconciling into the intended state.",
            "Resource has reconciled to intended state.",
            "Resource failed to reconcile.",
            "Drift is detected in the resourece state.",
            "Resource is intended state."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "PLANNED",
            "IN_PROGRESS",
            "RECONCILED",
            "FAILED",
            "DRIFTED",
            "INTENDED"
          ]
        },
        "type": {
          "description": "Output only. The type of the resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Status of the Resourcess in the deployment.",
      "id": "Resource",
      "type": "object"
    },
    "ConnectionConfig": {
      "properties": {
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "destinationComponentParameters": {
          "type": "array",
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "connectionUri": {
          "description": "Required. The connection URI.",
          "type": "string"
        }
      },
      "description": "Connection configuration for the application.",
      "id": "ConnectionConfig",
      "type": "object"
    },
    "ListOperationsResponse": {
      "properties": {
        "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.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "operations": {
          "type": "array",
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          }
        }
      },
      "description": "The response message for Operations.ListOperations.",
      "id": "ListOperationsResponse",
      "type": "object"
    },
    "ApplicationTemplate": {
      "properties": {
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Application template update timestamp.",
          "readOnly": true
        },
        "serializedApplicationTemplate": {
          "$ref": "SerializedApplicationTemplate",
          "description": "Output only. The serialized application template.",
          "readOnly": true
        },
        "iacSource": {
          "description": "Output only. Indicates the IaC source format of this application template.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The source is not specified.",
            "The IaC source is SAT. This is used to generate equivalent Terraform.",
            "The IaC source is Terraform."
          ],
          "enum": [
            "IAC_SOURCE_UNSPECIFIED",
            "IAC_SOURCE_SAT",
            "IAC_SOURCE_TERRAFORM"
          ]
        },
        "templateMetadata": {
          "$ref": "TFBlueprintMetadata",
          "description": "Output only. The input output variables parsed from the imported terraform code.",
          "readOnly": true
        },
        "applicationParameters": {
          "description": "Optional. Parameters to apply to all components in an application. You can specify projectID and region.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "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"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate was last successfully exported.",
          "readOnly": true,
          "$ref": "ArtifactLocation"
        },
        "createTime": {
          "description": "Output only. Application template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "latestRevision": {
          "description": "Output only. The latest application template revision.",
          "readOnly": true,
          "type": "string"
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "name": {
          "description": "Identifier. Application template name.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Application template display name.",
          "type": "string"
        },
        "iacFormat": {
          "type": "string",
          "description": "Output only. The IaC format of the application template.",
          "readOnly": true,
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "rootOutputVariables": {
          "type": "array",
          "description": "Optional. Root level output variables of the application template.",
          "items": {
            "$ref": "ComponentVariable"
          }
        },
        "rootInputVariables": {
          "description": "Optional. Root level input variables of the application template.",
          "items": {
            "$ref": "ComponentVariable"
          },
          "type": "array"
        },
        "compositionType": {
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "ApplicationCompositionType is STANDARD. The applicationTemplate or application is composed of components only of type service/workload/asset and has a single root module in terraform code.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "description": "Optional. Immutable. The composition type of the applicationTemplate: STANDARD OR COMPOSITE. This is a create time only param.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Application template description.",
          "type": "string"
        }
      },
      "description": "Application template resource.",
      "id": "ApplicationTemplate",
      "type": "object"
    },
    "ApplyCondition": {
      "description": "Condition for applying the policy. Accepts the `criticality` and `environment` parameters from the application template.",
      "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"
        }
      },
      "type": "object",
      "id": "ApplyCondition"
    },
    "ListCatalogTemplatesResponse": {
      "type": "object",
      "id": "ListCatalogTemplatesResponse",
      "description": "Message for response to listing catalog templates.",
      "properties": {
        "catalogTemplates": {
          "description": "The list of catalog templates.",
          "items": {
            "$ref": "CatalogTemplate"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      }
    },
    "ProjectParametersList": {
      "properties": {
        "projectParameters": {
          "type": "array",
          "description": "Output only. List of project parameters for the application.",
          "readOnly": true,
          "items": {
            "$ref": "ProjectParameters"
          }
        }
      },
      "description": "Provides the list of project parameters needed to deploy an application.",
      "id": "ProjectParametersList",
      "type": "object"
    },
    "MetadataInput": {
      "properties": {
        "spec": {
          "$ref": "MetadataInputSpec",
          "description": "Required. spec containing the metadata"
        }
      },
      "description": "Metadata for the input",
      "id": "MetadataInput",
      "type": "object"
    },
    "TemplateUiInput": {
      "properties": {
        "variables": {
          "type": "object",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          },
          "description": "Required. variables is a map defining all inputs on the UI."
        }
      },
      "description": "TemplateUiInput defines the list of variables and their sections on the deployment page.",
      "id": "TemplateUiInput",
      "type": "object"
    },
    "ComponentApplicationInfo": {
      "description": "This captures the apphub application details associated with the component.",
      "properties": {
        "displayName": {
          "description": "Optional. Display name for the application. The number of characters should be less than 64 characters.",
          "type": "string"
        },
        "attributes": {
          "$ref": "Attributes",
          "description": "Optional. Attributes of apphub application."
        },
        "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"
        },
        "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": {
          "$ref": "Scope",
          "description": "Optional. Scope of apphub application."
        }
      },
      "type": "object",
      "id": "ComponentApplicationInfo"
    },
    "DeveloperConnectSourceConfig": {
      "properties": {
        "reference": {
          "$ref": "GitReference",
          "description": "Required. The reference (for example, a branch, tag, or commit SHA) from which the content should be read."
        },
        "dir": {
          "description": "Required. The sub-directory within the repository from which to read content. The path must be relative to the repository's root such as dir1/dir2. To read content from the root dir, provide \"/\" as the value of the field.",
          "type": "string"
        },
        "developerConnectRepoUri": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.",
          "type": "string"
        },
        "fetchedCommitSha": {
          "type": "string",
          "description": "Output only. The SHA of the commit deduced from GitReference.",
          "readOnly": true
        }
      },
      "description": "This config specifies the location of a source (such as GitHub or Bitbucket) through Developer Connect.",
      "id": "DeveloperConnectSourceConfig",
      "type": "object"
    },
    "ArtifactLocation": {
      "id": "ArtifactLocation",
      "type": "object",
      "properties": {
        "developerConnectExportConfig": {
          "description": "Optional. Source Code Management(SCM) config for storing the content, such as generated IaC. Supports sources integrated with Developer Connect like GitHub, GitHub Enterprise, GitLab, and Bitbucket.",
          "$ref": "DeveloperConnectExportConfig"
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI for storing the generated IaC.",
          "type": "string"
        }
      },
      "description": "Defines the location for storing an artifact, such as generated IaC."
    },
    "RootModule": {
      "properties": {
        "components": {
          "type": "array",
          "description": "List of Application Design Center component names associated with this root module. For standard app template type components, this list will have a single element. For service / workload / asset components, this list will contain all such component names.",
          "items": {
            "type": "string"
          }
        },
        "outputVariables": {
          "description": "List of output variables of this root module.",
          "items": {
            "$ref": "RootOutputVariable"
          },
          "type": "array"
        },
        "inputVariables": {
          "type": "array",
          "description": "List of input variables of this root module.",
          "items": {
            "$ref": "RootInputVariable"
          }
        },
        "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"
        },
        "dependencies": {
          "description": "Dependencies of this root module. The dependency graph of root modules must be acyclic.",
          "items": {
            "$ref": "RootModuleDependency"
          },
          "type": "array"
        }
      },
      "description": "Metadata for a root module.",
      "id": "RootModule",
      "type": "object"
    },
    "TerraformUiOutputDisplay": {
      "description": "Terraform blueprint UI output display.",
      "properties": {
        "visibility": {
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ],
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ],
          "description": "Output only. Visibility of the output.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "TerraformUiOutputDisplay"
    },
    "RegisterApphubResourcesRequest": {
      "id": "RegisterApphubResourcesRequest",
      "type": "object",
      "properties": {
        "deployedResources": {
          "description": "Optional. The list of deployed GCP resources to register.",
          "items": {
            "$ref": "DeployedResource"
          },
          "type": "array"
        },
        "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"
        },
        "adcApplicationUri": {
          "description": "The resource uri of the Application. Used for registering resources of an application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
          "type": "string"
        }
      },
      "description": "Request message for RegisterApphubResources method."
    },
    "Framework": {
      "properties": {
        "name": {
          "description": "Required. The framework name.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The framework display name.",
          "type": "string"
        },
        "parentDomain": {
          "description": "Required. The domain to which this framework belongs.",
          "$ref": "Domain"
        },
        "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"
        },
        "deploymentStatus": {
          "description": "Optional. The deployment status of the framework.",
          "enumDescriptions": [
            "Deployment status unspecified.",
            "Framework is deployed.",
            "Framework is undeployed."
          ],
          "enum": [
            "DEPLOYMENT_STATUS_UNSPECIFIED",
            "DEPLOYED",
            "UNDEPLOYED"
          ],
          "type": "string"
        },
        "majorRevisionId": {
          "description": "Optional. The major revision id of the framework.",
          "type": "integer",
          "format": "int32"
        },
        "cloudControlDetails": {
          "description": "Optional. The cloud controls that are associated with the framework.",
          "items": {
            "$ref": "CloudControl"
          },
          "type": "array"
        }
      },
      "description": "Framework for assessment.",
      "id": "Framework",
      "type": "object"
    },
    "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.",
      "properties": {
        "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"
        },
        "expression": {
          "description": "Textual representation of an expression in Common Expression Language syntax.",
          "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"
        }
      },
      "type": "object",
      "id": "Expr"
    },
    "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.",
      "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": {
          "type": "array",
          "description": "The configuration for logging of each type of permission.",
          "items": {
            "$ref": "AuditLogConfig"
          }
        }
      },
      "type": "object",
      "id": "AuditConfig"
    },
    "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 }",
      "properties": {
        "resourceAddress": {
          "description": "Output only. The resource address of the error.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "enumDescriptions": [
            "Default.",
            "The change is invalid. Example: a string value provided for a number input parameter type, which would be caught by Terraform validation.",
            "The change is not supported. Example: a user directly adding a Terraform resource in main.tf that Design Center does not support importing."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "INVALID",
            "NOT_SUPPORTED"
          ],
          "description": "Output only. The type of error.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Output only. The description of the error.",
          "readOnly": true,
          "type": "string"
        },
        "file": {
          "type": "string",
          "description": "Output only. The file where the error has occurred.",
          "readOnly": true
        },
        "range": {
          "$ref": "CodeRange",
          "description": "Output only. The code portion where this error occurs.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "ImportIaCError"
    },
    "SaaSRuntimeContext": {
      "type": "object",
      "id": "SaaSRuntimeContext",
      "description": "SaaS runtime context.",
      "properties": {
        "saasNames": {
          "description": "Optional. The SaaS names. Format for each SaaS: projects/{project}/locations/{location}/saas/{saas}",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "DeploymentTarget": {
      "id": "DeploymentTarget",
      "type": "object",
      "properties": {
        "gkeDeploymentTarget": {
          "description": "Optional. The GKE deployment target.",
          "$ref": "GKEDeploymentTarget"
        }
      },
      "description": "The deployment target of the application."
    },
    "RegisterAppHubApplicationResourcesRequest": {
      "type": "object",
      "id": "RegisterAppHubApplicationResourcesRequest",
      "description": "Request message for RegisterAppHubApplicationResources method.",
      "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"
        },
        "apphubApplication": {
          "description": "Required. The name of the AppHub Application. Format: projects/{project}/locations/{location}/applications/{application}",
          "type": "string"
        },
        "tfstateSignedGcsUri": {
          "description": "Optional. A securely signed Cloud Storage URI pointing to the tfstate file. The URI must be signed to grant the service temporary read access to the state file. Application Design Center imposes a limit on the maximum size of the state file accessed via this URI.",
          "type": "string"
        }
      }
    },
    "RootModulesMetadata": {
      "description": "Root modules metadata.",
      "properties": {
        "rootModules": {
          "description": "List of terraform root modules.",
          "items": {
            "$ref": "RootModule"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "RootModulesMetadata"
    },
    "GenerateApplicationTemplateRevisionIaCResponse": {
      "type": "object",
      "id": "GenerateApplicationTemplateRevisionIaCResponse",
      "description": "Response message for GenerateApplicationTemplateRevisionIaC method.",
      "properties": {
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "$ref": "RootModulesMetadata",
          "description": "Root modules metadata of the application template revision."
        }
      }
    },
    "TemplateInfo": {
      "type": "object",
      "id": "TemplateInfo",
      "description": "TemplateInfo provides the actuation tool information.",
      "properties": {
        "actuationTool": {
          "description": "Required. IaCFormatInfo defines the actuation tool used to provision the Template.",
          "$ref": "IacFormatInfo"
        }
      }
    },
    "Criticality": {
      "properties": {
        "type": {
          "enumDescriptions": [
            "Unspecified type.",
            "Mission critical service, application or workload.",
            "High impact.",
            "Medium impact.",
            "Low impact."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "MISSION_CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ],
          "description": "Required. Criticality Type.",
          "type": "string"
        },
        "level": {
          "deprecated": true,
          "type": "string",
          "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."
        },
        "missionCritical": {
          "description": "Optional. Indicates mission-critical Application, Service, or Workload. Deprecated: Please refer to type instead.",
          "deprecated": true,
          "type": "boolean"
        }
      },
      "description": "Criticality of the Application, Service, or Workload",
      "id": "Criticality",
      "type": "object"
    },
    "AssessmentFinding": {
      "properties": {
        "findingsUri": {
          "description": "Optional. Link to the findings, if persisted by the domain.",
          "type": "string"
        },
        "assessedAsset": {
          "$ref": "AssetDetails",
          "description": "Required. Details of the Cloud Asset Inventory asset that was assessed."
        },
        "sccMetadata": {
          "$ref": "SCCMetadata",
          "description": "Output only. SCC related metadata for the finding.",
          "readOnly": true
        },
        "adcMetadata": {
          "$ref": "FindingADCMetadata",
          "description": "Output only. Metadata related to the Application Design Center with the finding.",
          "readOnly": true
        },
        "findingType": {
          "description": "Required. The type of the finding. Findings can be informational, warning, or error.",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Warning finding. Deployment will not be blocked.",
            "Error finding. Deployment will be blocked on ERROR."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "WARNING",
            "ERROR"
          ],
          "type": "string"
        },
        "assessedFrameworkId": {
          "description": "Optional. The framework that was assessed.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Description of the finding.",
          "type": "string"
        },
        "additionalNotes": {
          "description": "Optional. A description of the additional details about finding.",
          "type": "string"
        },
        "severity": {
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Critical severity.",
            "High severity.",
            "Medium severity.",
            "Low severity."
          ],
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ],
          "description": "Optional. The severity of the finding.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The Finding ID.",
          "readOnly": true
        },
        "assessedFramework": {
          "description": "Optional. Details of the framework that was assessed.",
          "$ref": "Framework"
        },
        "remediationStep": {
          "$ref": "RemediationStep",
          "description": "Optional. A description of the steps that users can take to fix the finding."
        }
      },
      "description": "Details of an Assessment Finding.",
      "id": "AssessmentFinding",
      "type": "object"
    },
    "TemplateUiOutput": {
      "id": "TemplateUiOutput",
      "type": "object",
      "properties": {
        "outputMessage": {
          "description": "Optional. Message to be displayed in the UI.",
          "type": "string"
        },
        "outputs": {
          "type": "object",
          "description": "Required. outputs is a map defining all outputs on the UI.",
          "additionalProperties": {
            "$ref": "TemplateUiOutputDisplayVariable"
          }
        }
      },
      "description": "TemplateUiOutput defines the list of outputs and their visibility on the deployment page."
    },
    "TFBlueprintMetadata": {
      "type": "object",
      "id": "TFBlueprintMetadata",
      "description": "Terraform input and output metadata.",
      "properties": {
        "deploymentDuration": {
          "type": "string",
          "format": "google-duration",
          "description": "Optional. The time estimate for deploying the blueprint."
        },
        "connections": {
          "type": "array",
          "description": "Output only. Union of all the Terraform input connections.",
          "readOnly": true,
          "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,
          "items": {
            "$ref": "ProviderVersion"
          },
          "type": "array"
        },
        "iconUri": {
          "type": "string",
          "description": "Output only. The icon URI for the blueprint.",
          "readOnly": true
        },
        "terraformOutput": {
          "type": "array",
          "description": "Output only. Terraform outputs.",
          "readOnly": true,
          "items": {
            "$ref": "TerraformOutput"
          }
        },
        "terraformInput": {
          "description": "Output only. Terraform inputs.",
          "readOnly": true,
          "items": {
            "$ref": "TerraformInput"
          },
          "type": "array"
        },
        "apis": {
          "description": "Output only. APIs that must be enabled to deploy the template, in the form of \"compute.googleapis.com\".",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account deploying the template, in the form of \"roles/compute.admin\".",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "DisplayVariableToggle": {
      "type": "object",
      "id": "DisplayVariableToggle",
      "description": "Display variable toggle.",
      "properties": {
        "variable": {
          "type": "string",
          "description": "Output only. The name of the variable used to toggle the display of another variable.",
          "readOnly": true
        },
        "variableValues": {
          "type": "array",
          "description": "Output only. The value of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "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"
          ]
        }
      }
    },
    "CommitApplicationTemplateRequest": {
      "id": "CommitApplicationTemplateRequest",
      "type": "object",
      "properties": {},
      "description": "Request message for CommitApplicationTemplate method."
    },
    "RoleInfo": {
      "type": "object",
      "id": "RoleInfo",
      "description": "RoleInfo represents an IAM role along with its origin.",
      "properties": {
        "systemProvided": {
          "type": "boolean",
          "description": "Output only. When true, indicates that this role was automatically added by Application Design Center. Roles provided by users will have this field set to false.",
          "readOnly": true
        },
        "permissions": {
          "description": "Output only. The list of permissions that this role is recommended for. This includes only the permissions of this role that are part of the recommendation.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "role": {
          "description": "Required. IAM role name, such as `roles/editor`.",
          "type": "string"
        }
      }
    },
    "AssessmentReport": {
      "properties": {
        "adcCatalogTemplateUri": {
          "description": "Output only. Catalog Template URI.",
          "readOnly": true,
          "type": "string"
        },
        "domainAssessmentReports": {
          "type": "array",
          "description": "Output only. Generated best practice reports.",
          "readOnly": true,
          "items": {
            "$ref": "DomainAssessmentReport"
          }
        },
        "skippedDomains": {
          "description": "Output only. Skipped domains.",
          "readOnly": true,
          "items": {
            "$ref": "SkippedDomain"
          },
          "type": "array"
        },
        "createTime": {
          "description": "Output only. The time at which the report was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "adcApplicationUri": {
          "type": "string",
          "description": "Output only. Application URI.",
          "readOnly": true
        },
        "adcApplicationTemplateUri": {
          "type": "string",
          "description": "Output only. Application Template URI.",
          "readOnly": true
        },
        "adcSpaceUri": {
          "type": "string",
          "description": "Output only. Space URI.",
          "readOnly": true
        }
      },
      "description": "Aggregated assessment report from all domains.",
      "id": "AssessmentReport",
      "type": "object"
    },
    "Space": {
      "properties": {
        "description": {
          "description": "Optional. Description for the space.",
          "type": "string"
        },
        "gcsBucket": {
          "description": "Optional. An existing Google Cloud Storage bucket that you want to use instead of creating a new bucket during Application Design Center setup. If not provided, a default bucket is created during setup. The bucket must exist in the same project as the space. If the bucket name does not exist in the same project as the space, the request fails with an INVALID_ARGUMENT error. If you do not have access to the bucket, the request fails with a PERMISSION_DENIED error. Format: {$bucket_name} For example, if the Cloud Storage bucket URI is gs:\\/\\/{$bucket_name}, the format is {$bucket_name}.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. Space creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "enableGcpSharedTemplates": {
          "description": "Optional. Flag to enable Google opinionated shared templates.",
          "type": "boolean"
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Space update timestamp",
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The space name.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Display name for the space.",
          "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.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "description": "Space is a top level resource for managing teams building applications through Application Design Center.",
      "id": "Space",
      "type": "object"
    },
    "RegisterDeployedResourcesRequest": {
      "type": "object",
      "id": "RegisterDeployedResourcesRequest",
      "description": "Request message for RegisterDeployedResources method.",
      "properties": {
        "tfstateSignedGcsUri": {
          "description": "A securely signed Cloud Storage URI pointing to the tfstate file. The URI must be signed to grant the service temporary read access to the state file. Application Design Center imposes a limit on the maximum size of the state file accessed via this URI.",
          "type": "string"
        },
        "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"
        },
        "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"
        }
      }
    },
    "ApplicationTemplateSystemRevision": {
      "description": "Application template system revision resource.",
      "properties": {
        "annotations": {
          "additionalProperties": {
            "type": "string"
          },
          "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"
        },
        "snapshot": {
          "description": "Output only. The serialized application template snapshot at this revision.",
          "readOnly": true,
          "$ref": "SerializedApplicationTemplate"
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The application template system revision creation timestamp.",
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The application template system revision name. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ApplicationTemplateSystemRevision"
    },
    "ScoreCard": {
      "id": "ScoreCard",
      "type": "object",
      "properties": {
        "minScoreRequired": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Minimum score required to pass assessment."
        },
        "averageScore": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Average score for similar reports."
        },
        "reportScore": {
          "type": "integer",
          "format": "int32",
          "description": "Required. Calculated score of the report."
        },
        "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"
        }
      },
      "description": "Score card associated with the report."
    },
    "TestIamPermissionsRequest": {
      "id": "TestIamPermissionsRequest",
      "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).",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Request message for `TestIamPermissions` method."
    },
    "GenerateApplicationTemplateIaCResponse": {
      "id": "GenerateApplicationTemplateIaCResponse",
      "type": "object",
      "properties": {
        "gcsUri": {
          "deprecated": true,
          "type": "string",
          "description": "DEPRECATED: Use the 'artifact_location' field instead. The Cloud Storage URI of the generated IaC."
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template.",
          "$ref": "RootModulesMetadata"
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        }
      },
      "description": "Response message for GenerateApplicationTemplateIaC method."
    },
    "ResourceType": {
      "id": "ResourceType",
      "type": "object",
      "properties": {
        "caisResource": {
          "type": "string",
          "description": "Output only. The CAIS resource type.",
          "readOnly": true
        },
        "tfResource": {
          "type": "string",
          "description": "Output only. The Terraform resource type. For example: \"google_compute_instance\".",
          "readOnly": true
        }
      },
      "description": "Represents the type of a resource within a component template."
    },
    "SerializedApplicationTemplate": {
      "id": "SerializedApplicationTemplate",
      "type": "object",
      "properties": {
        "applicationParameters": {
          "description": "Optional. Parameters to apply to all components in the application template.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "components": {
          "description": "Optional. The application template components.",
          "items": {
            "$ref": "SerializedComponent"
          },
          "type": "array"
        },
        "displayName": {
          "description": "Optional. The application template display name.",
          "type": "string"
        },
        "iacFormat": {
          "type": "string",
          "description": "Optional. The IaC format of the application template.",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        },
        "uri": {
          "description": "Optional. The application template URI.",
          "type": "string"
        },
        "rootInputVariables": {
          "type": "array",
          "description": "Output only. Root level input variables of the application template.",
          "readOnly": true,
          "items": {
            "$ref": "ComponentVariable"
          }
        },
        "rootOutputVariables": {
          "description": "Output only. Root level output variables of the application template.",
          "readOnly": true,
          "items": {
            "$ref": "ComponentVariable"
          },
          "type": "array"
        },
        "hasGlobalResource": {
          "description": "Output only. Whether the application template is compatible with regional scope.",
          "readOnly": true,
          "type": "boolean"
        },
        "apphubApplicationParameters": {
          "description": "Optional. The App Hub application parameters.",
          "$ref": "AppHubApplicationParameters"
        },
        "compositionType": {
          "enumDescriptions": [
            "ApplicationCompositionType is UNSPECIFIED.",
            "ApplicationCompositionType is STANDARD. The applicationTemplate or application is composed of components only of type service/workload/asset and has a single root module in terraform code.",
            "ApplicationCompositionType is COMPOSITE. The template is composed of STANDARD applicationTemplate(s) and might be having multiple root modules in terraform code."
          ],
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "description": "Output only. The composition type of the applicationTemplate: STANDARD OR COMPOSITE.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Optional. The application template description.",
          "type": "string"
        },
        "serializedPolicies": {
          "description": "Output only. Policies of the application template.",
          "readOnly": true,
          "items": {
            "$ref": "SerializedPolicy"
          },
          "type": "array"
        }
      },
      "description": "Serialized application template."
    },
    "ConnectionSpec": {
      "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"
        }
      },
      "description": "Defines the specifications of a connection.",
      "id": "ConnectionSpec",
      "type": "object"
    },
    "ApiInfo": {
      "id": "ApiInfo",
      "type": "object",
      "properties": {
        "api": {
          "description": "Required. API name, such as `compute.googleapis.com`.",
          "type": "string"
        },
        "systemProvided": {
          "type": "boolean",
          "description": "Output only. When true, indicates that this API was automatically added by Application Design Center. APIs provided by users will have this field set to false.",
          "readOnly": true
        }
      },
      "description": "ApiInfo represents an API along with its origin."
    },
    "TerraformInput": {
      "type": "object",
      "id": "TerraformInput",
      "description": "Terraform inputs.",
      "properties": {
        "description": {
          "description": "Output only. Terraform variable description.",
          "readOnly": true,
          "type": "string"
        },
        "connections": {
          "type": "array",
          "description": "Output only. Terraform input connections.",
          "readOnly": true,
          "items": {
            "$ref": "TerraformInputConnections"
          }
        },
        "terraformInputVariable": {
          "type": "string",
          "description": "Output only. Input variable name present in Terraform.",
          "readOnly": true
        },
        "type": {
          "description": "Output only. The Terraform input data type.",
          "readOnly": true,
          "type": "string"
        },
        "defaultValue": {
          "type": "any",
          "description": "Output only. The default value of the Terraform input variable.",
          "readOnly": true
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "readOnly": true,
          "type": "boolean"
        }
      }
    },
    "OperationMetadata": {
      "properties": {
        "deploymentMetadata": {
          "$ref": "DeploymentOperationMetadata",
          "description": "Output only. The application deployment metadata this operation is associated with.",
          "readOnly": true
        },
        "apiVersion": {
          "type": "string",
          "description": "Output only. API version used to start the operation.",
          "readOnly": true
        },
        "verb": {
          "type": "string",
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time the operation was created.",
          "readOnly": true
        },
        "deploymentGroupMetadata": {
          "description": "Output only. The Provision Deployment Group Metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "ProvisionDeploymentGroupOperationMetadata"
        },
        "statusMessage": {
          "type": "string",
          "description": "Output only. Human readable status of the operation, if any.",
          "readOnly": true
        },
        "applicationMetadata": {
          "description": "Output only. The application delete metadata this operation is associated with.",
          "readOnly": true,
          "$ref": "ApplicationOperationMetadata"
        },
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time the operation finished running.",
          "readOnly": true
        },
        "requestedCancellation": {
          "type": "boolean",
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true
        },
        "target": {
          "type": "string",
          "description": "Output only. The server defined resource path for the target of the operation.",
          "readOnly": true
        },
        "generateAssessmentReportMetadata": {
          "$ref": "GenerateAssessmentReportOperationMetadata",
          "description": "Output only. The Generate Assessment Report Metadata this operation is associated with.",
          "readOnly": true
        },
        "previewMetadata": {
          "$ref": "PreviewOperationMetadata",
          "description": "Output only. The application preview metadata this operation is associated with.",
          "readOnly": true
        }
      },
      "description": "Represents the metadata of the long-running operation.",
      "id": "OperationMetadata",
      "type": "object"
    },
    "SharedTemplate": {
      "description": "A read-only template that is shared with a space.",
      "properties": {
        "originTemplate": {
          "description": "Output only. The origin template of the shared template.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The shared template creation timestamp.",
          "readOnly": true
        },
        "description": {
          "description": "Optional. The shared template description.",
          "type": "string"
        },
        "templateCategory": {
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "type": "string",
          "description": "Required. The category of the template."
        },
        "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"
        },
        "updateTime": {
          "description": "Output only. The shared template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "latestRevisionId": {
          "type": "string",
          "description": "Output only. Latest revision of the shared template.",
          "readOnly": true
        },
        "type": {
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "type": "string",
          "description": "Optional. The Application Design Center assembly template type."
        }
      },
      "type": "object",
      "id": "SharedTemplate"
    },
    "DeveloperConnectConfig": {
      "type": "object",
      "id": "DeveloperConnectConfig",
      "description": "This config defines the location of a source through Developer Connect.",
      "properties": {
        "gitRepositoryLink": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.",
          "type": "string"
        }
      }
    },
    "HelmChartOutput": {
      "type": "object",
      "id": "HelmChartOutput",
      "description": "Helm Chart outputs.",
      "properties": {
        "helmOutputVariable": {
          "type": "string",
          "description": "Output only. Output variable name present.",
          "readOnly": true
        },
        "description": {
          "description": "Output only. Description of the variable.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "Output only. Type of output.",
          "readOnly": true,
          "type": "any"
        }
      }
    },
    "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).",
      "properties": {
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "Status"
    },
    "IacFormatInfo": {
      "type": "object",
      "id": "IacFormatInfo",
      "description": "IacFormatInfo defines the actuation tool used to provision the Template.",
      "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"
        }
      }
    },
    "DeploymentMetadata": {
      "properties": {
        "revision": {
          "type": "string",
          "description": "Output only. The revision of the deployment associated with the Application.",
          "readOnly": true
        },
        "componentOutputParameters": {
          "type": "array",
          "description": "Output only. The component output parameters of the deployment.",
          "readOnly": true,
          "items": {
            "$ref": "ComponentOutputParameters"
          }
        },
        "error": {
          "$ref": "DeploymentError",
          "description": "Output only. The error associated with the deployment.",
          "readOnly": true
        },
        "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"
        },
        "workerPool": {
          "type": "string",
          "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
        },
        "build": {
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true
        }
      },
      "description": "Deployment information for the application.",
      "id": "DeploymentMetadata",
      "type": "object"
    },
    "IaCFile": {
      "properties": {
        "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 HCL content of the file.",
          "type": "string"
        },
        "name": {
          "description": "Required. The name of the file.",
          "type": "string"
        }
      },
      "description": "IaCFile represents a single infrastructure as code file.",
      "id": "IaCFile",
      "type": "object"
    }
  },
  "name": "designcenter",
  "discoveryVersion": "v1",
  "documentationLink": "http://cloud.google.com/application-design-center/docs",
  "ownerDomain": "google.com",
  "basePath": "",
  "title": "Design Center API"
}
