{
  "revision": "20260623",
  "name": "designcenter",
  "parameters": {
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "type": "boolean",
      "default": "true",
      "location": "query"
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "default": "json",
      "location": "query"
    },
    "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": {
      "location": "query",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ]
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "type": "string",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "key": {
      "type": "string",
      "location": "query",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token."
    },
    "access_token": {
      "description": "OAuth access token.",
      "type": "string",
      "location": "query"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "callback": {
      "type": "string",
      "location": "query",
      "description": "JSONP"
    }
  },
  "servicePath": "",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "discoveryVersion": "v1",
  "version": "v1",
  "basePath": "",
  "id": "designcenter:v1",
  "ownerDomain": "google.com",
  "protocol": "rest",
  "kind": "discovery#restDescription",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "resources": {
            "spaces": {
              "methods": {
                "generateTerraformPlanAssessmentReport": {
                  "description": "Generate a Terraform plan assessment report for a given Terraform plan.",
                  "id": "designcenter.projects.locations.spaces.generateTerraformPlanAssessmentReport",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateTerraformPlanAssessmentReport",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "description": "Required. The parent resource in which to generate the assessment report. Format: projects/$project/locations/$location/spaces/$space",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+name}:generateTerraformPlanAssessmentReport",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "GenerateTerraformPlanAssessmentReportRequest"
                  }
                },
                "registerAppHubApplicationResources": {
                  "request": {
                    "$ref": "RegisterAppHubApplicationResourcesRequest"
                  },
                  "path": "v1/{+parent}/spaces:registerAppHubApplicationResources",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces:registerAppHubApplicationResources",
                  "parameters": {
                    "parent": {
                      "type": "string",
                      "description": "Required. The parent location. Format: projects/{project}/locations/{location}",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path"
                    }
                  },
                  "id": "designcenter.projects.locations.spaces.registerAppHubApplicationResources",
                  "httpMethod": "POST",
                  "description": "Register deployed resources from terraform state file with App Hub without needing a space."
                },
                "setIamPolicy": {
                  "request": {
                    "$ref": "SetIamPolicyRequest"
                  },
                  "path": "v1/{+resource}:setIamPolicy",
                  "response": {
                    "$ref": "Policy"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:setIamPolicy",
                  "parameters": {
                    "resource": {
                      "type": "string",
                      "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.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "POST",
                  "id": "designcenter.projects.locations.spaces.setIamPolicy",
                  "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors."
                },
                "getIamPolicy": {
                  "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:getIamPolicy",
                  "parameters": {
                    "resource": {
                      "type": "string",
                      "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.",
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                    },
                    "options.requestedPolicyVersion": {
                      "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    }
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "id": "designcenter.projects.locations.spaces.getIamPolicy",
                  "path": "v1/{+resource}:getIamPolicy",
                  "response": {
                    "$ref": "Policy"
                  }
                },
                "create": {
                  "path": "v1/{+parent}/spaces",
                  "response": {
                    "$ref": "Space"
                  },
                  "request": {
                    "$ref": "Space"
                  },
                  "httpMethod": "POST",
                  "id": "designcenter.projects.locations.spaces.create",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent in which to create a space.",
                      "required": true,
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path"
                    },
                    "spaceId": {
                      "location": "query",
                      "type": "string",
                      "description": "Required. The ID of the space to create."
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Creates a space."
                },
                "delete": {
                  "description": "Deletes a space.",
                  "id": "designcenter.projects.locations.spaces.delete",
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "type": "string",
                      "description": "Required. The space name.",
                      "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"
                    }
                  },
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Empty"
                  }
                },
                "patch": {
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Space"
                  },
                  "request": {
                    "$ref": "Space"
                  },
                  "id": "designcenter.projects.locations.spaces.patch",
                  "httpMethod": "PATCH",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "description": "Identifier. The space name.",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "description": "Optional. The fields to overwrite in the space update. If you don't provide a mask, all fields are overwritten.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    }
                  },
                  "description": "Updates a space."
                },
                "testIamPermissions": {
                  "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
                  "id": "designcenter.projects.locations.spaces.testIamPermissions",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "resource"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:testIamPermissions",
                  "parameters": {
                    "resource": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "type": "string",
                      "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.",
                      "required": true
                    }
                  },
                  "path": "v1/{+resource}:testIamPermissions",
                  "response": {
                    "$ref": "TestIamPermissionsResponse"
                  },
                  "request": {
                    "$ref": "TestIamPermissionsRequest"
                  }
                },
                "get": {
                  "description": "Gets details about a space.",
                  "httpMethod": "GET",
                  "id": "designcenter.projects.locations.spaces.get",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path",
                      "type": "string",
                      "description": "Required. The space name.",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Space"
                  }
                },
                "list": {
                  "path": "v1/{+parent}/spaces",
                  "response": {
                    "$ref": "ListSpacesResponse"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces",
                  "parameters": {
                    "orderBy": {
                      "description": "Optional. How the results are sorted.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "description": "Required. The name of the parent resource, for which spaces are listed.",
                      "required": true,
                      "type": "string"
                    },
                    "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"
                    },
                    "pageSize": {
                      "description": "Optional. The maximum number of pages to return from this request. If unspecified, the value automatically reflects the number of results returned.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "filter": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. A filter that chooses which spaces to return."
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "id": "designcenter.projects.locations.spaces.list",
                  "description": "Lists spaces in a given project and location."
                },
                "generateAssessmentReport": {
                  "path": "v1/{+spaceName}:generateAssessmentReport",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "GenerateAssessmentReportRequest"
                  },
                  "id": "designcenter.projects.locations.spaces.generateAssessmentReport",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "spaceName"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}:generateAssessmentReport",
                  "parameters": {
                    "spaceName": {
                      "type": "string",
                      "description": "Required. The name of the space at which Generate Assessment Report is called. Format: `projects/$project/locations/$location/spaces/$space`",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                      "location": "path"
                    }
                  },
                  "description": "Deprecated: Use GenerateTerraformPlanAssessmentReport instead. Generate a best practice report for a given Terraform plan.",
                  "deprecated": true
                }
              },
              "resources": {
                "catalogs": {
                  "methods": {
                    "get": {
                      "httpMethod": "GET",
                      "id": "designcenter.projects.locations.spaces.catalogs.get",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "location": "path",
                          "type": "string",
                          "description": "Required. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "description": "Gets details about a catalog."
                    },
                    "create": {
                      "request": {
                        "$ref": "Catalog"
                      },
                      "path": "v1/{+parent}/catalogs",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "parameters": {
                        "parent": {
                          "type": "string",
                          "description": "Required. The parent space in which a catalog is created in the following format: `projects/$project/locations/$location/spaces/$space`",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path"
                        },
                        "catalogId": {
                          "location": "query",
                          "type": "string",
                          "description": "Required. The ID of the catalog to create."
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.catalogs.create",
                      "httpMethod": "POST",
                      "description": "Creates a catalog."
                    },
                    "list": {
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs",
                      "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."
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which catalogs to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "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"
                        },
                        "parent": {
                          "description": "Required. The parent space from which catalogs are listed. Format: `projects/$project/locations/$location/spaces/$space`",
                          "required": true,
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path"
                        },
                        "orderBy": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. How the results should be sorted."
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.catalogs.list",
                      "httpMethod": "GET",
                      "path": "v1/{+parent}/catalogs",
                      "response": {
                        "$ref": "ListCatalogsResponse"
                      },
                      "description": "Lists catalogs in a given space."
                    },
                    "delete": {
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Operation"
                      },
                      "id": "designcenter.projects.locations.spaces.catalogs.delete",
                      "httpMethod": "DELETE",
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "location": "path"
                        },
                        "force": {
                          "location": "query",
                          "type": "boolean",
                          "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."
                        }
                      },
                      "description": "Deletes a catalog."
                    },
                    "patch": {
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                          "description": "Identifier. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                          "required": true,
                          "type": "string"
                        },
                        "updateMask": {
                          "description": "Optional. The fields to overwrite in the catalog update. If you don't provide a mask, all fields are overwritten.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "PATCH",
                      "id": "designcenter.projects.locations.spaces.catalogs.patch",
                      "request": {
                        "$ref": "Catalog"
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Catalog"
                      },
                      "description": "Updates a catalog."
                    }
                  },
                  "resources": {
                    "templates": {
                      "resources": {
                        "revisions": {
                          "methods": {
                            "list": {
                              "description": "Lists template revisions.",
                              "path": "v1/{+parent}/revisions",
                              "response": {
                                "$ref": "ListCatalogTemplateRevisionsResponse"
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "parameters": {
                                "pageToken": {
                                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "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"
                                },
                                "filter": {
                                  "description": "Optional. A filter that chooses which catalog template revisions to return.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "orderBy": {
                                  "description": "Optional. How the results should be sorted.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "parent": {
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                                  "location": "path",
                                  "description": "Required. The parent resource from which a list of catalog template revisions is requested.",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.list",
                              "httpMethod": "GET"
                            },
                            "delete": {
                              "path": "v1/{+name}",
                              "response": {
                                "$ref": "Operation"
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "parameters": {
                                "name": {
                                  "description": "Required. The template revision name.",
                                  "required": true,
                                  "type": "string",
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$"
                                }
                              },
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.delete",
                              "httpMethod": "DELETE",
                              "description": "Deletes a template revision."
                            },
                            "create": {
                              "description": "Creates a template revision.",
                              "parameterOrder": [
                                "parent"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions",
                              "parameters": {
                                "parent": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                                  "type": "string",
                                  "description": "Required. The parent in which the catalog template revisions request is created in following format: `projects/$project/locations/$location/spaces/$space/templates/$template`",
                                  "required": true
                                },
                                "catalogTemplateRevisionId": {
                                  "location": "query",
                                  "type": "string",
                                  "description": "Required. The ID of the template revision to create."
                                }
                              },
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.create",
                              "httpMethod": "POST",
                              "request": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "path": "v1/{+parent}/revisions",
                              "response": {
                                "$ref": "Operation"
                              }
                            },
                            "get": {
                              "id": "designcenter.projects.locations.spaces.catalogs.templates.revisions.get",
                              "httpMethod": "GET",
                              "parameterOrder": [
                                "name"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}/revisions/{revisionsId}",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+/revisions/[^/]+$",
                                  "description": "Required. The catalog template revisions name.",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "path": "v1/{+name}",
                              "response": {
                                "$ref": "CatalogTemplateRevision"
                              },
                              "description": "Gets details about a template revision."
                            }
                          }
                        }
                      },
                      "methods": {
                        "patch": {
                          "description": "Updates a catalog template resource.",
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.patch",
                          "httpMethod": "PATCH",
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "parameters": {
                            "name": {
                              "description": "Identifier. The catalog template name in following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "required": true,
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "location": "path"
                            },
                            "updateMask": {
                              "description": "Optional. The fields to overwrite in the catalog template update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten.",
                              "location": "query",
                              "type": "string",
                              "format": "google-fieldmask"
                            }
                          }
                        },
                        "list": {
                          "description": "Lists catalog templates.",
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.list",
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "parameters": {
                            "parent": {
                              "type": "string",
                              "description": "Required. The parent from which the catalog templates are listed in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
                              "required": true,
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "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"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses the catalog templates to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "path": "v1/{+parent}/templates",
                          "response": {
                            "$ref": "ListCatalogTemplatesResponse"
                          }
                        },
                        "delete": {
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Operation"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$",
                              "description": "Required. The catalog template name. Format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "required": true,
                              "type": "string"
                            },
                            "force": {
                              "location": "query",
                              "type": "boolean",
                              "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."
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.delete",
                          "httpMethod": "DELETE",
                          "description": "Deletes a catalog template."
                        },
                        "create": {
                          "request": {
                            "$ref": "CatalogTemplate"
                          },
                          "path": "v1/{+parent}/templates",
                          "response": {
                            "$ref": "CatalogTemplate"
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates",
                          "parameters": {
                            "parent": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "description": "Required. The parent resource in which the catalog template is created.",
                              "required": true,
                              "type": "string"
                            },
                            "catalogTemplateId": {
                              "description": "Required. The ID of the catalog template to create. The ID is appended to the catalog template's name.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.create",
                          "httpMethod": "POST",
                          "description": "Adds a template to a catalog."
                        },
                        "get": {
                          "description": "Gets a catalog template.",
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.catalogs.templates.get",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/templates/{templatesId}",
                          "parameters": {
                            "name": {
                              "description": "Required. The catalog template name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/templates/[^/]+$"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "CatalogTemplate"
                          }
                        }
                      }
                    },
                    "shares": {
                      "methods": {
                        "create": {
                          "description": "Shares a catalog from one space to another space.",
                          "request": {
                            "$ref": "Share"
                          },
                          "path": "v1/{+parent}/shares",
                          "response": {
                            "$ref": "Operation"
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "parameters": {
                            "parent": {
                              "description": "Required. The parent resource in which shares are created.",
                              "required": true,
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$",
                              "location": "path"
                            },
                            "shareId": {
                              "location": "query",
                              "type": "string",
                              "description": "Required. The ID of the share to create."
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "POST",
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.create"
                        },
                        "get": {
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Share"
                          },
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.get",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "parameters": {
                            "name": {
                              "description": "Required. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Get catalog share object for the space."
                        },
                        "sync": {
                          "description": "Synchronizes a share and updates the destination workspace to reflect. reflect the most recent changes to the catalog.",
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}:sync",
                          "parameters": {
                            "name": {
                              "type": "string",
                              "description": "Required. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "location": "path"
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.sync",
                          "httpMethod": "POST",
                          "request": {
                            "$ref": "SyncShareRequest"
                          },
                          "path": "v1/{+name}:sync",
                          "response": {
                            "$ref": "Operation"
                          }
                        },
                        "list": {
                          "description": "Lists catalog share objects for the space.",
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares",
                          "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"
                            },
                            "parent": {
                              "description": "Required. The parent resource from which a list of shares is requested.",
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+$"
                            },
                            "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"
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.list",
                          "httpMethod": "GET",
                          "path": "v1/{+parent}/shares",
                          "response": {
                            "$ref": "ListSharesResponse"
                          }
                        },
                        "delete": {
                          "description": "Deletes a catalog share.",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/catalogs/{catalogsId}/shares/{sharesId}",
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/catalogs/[^/]+/shares/[^/]+$",
                              "location": "path",
                              "description": "Required. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "DELETE",
                          "id": "designcenter.projects.locations.spaces.catalogs.shares.delete",
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Operation"
                          }
                        }
                      }
                    }
                  }
                },
                "sharedTemplates": {
                  "methods": {
                    "list": {
                      "description": "Lists shared templates in a given space.",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates",
                      "parameters": {
                        "parent": {
                          "type": "string",
                          "description": "Required. The parent space for which shared templates are listed in the following format: `projects/$project/locations/$location/spaces/$space`",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path"
                        },
                        "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"
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which shared templates to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "pageToken": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "GET",
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.list",
                      "path": "v1/{+parent}/sharedTemplates",
                      "response": {
                        "$ref": "ListSharedTemplatesResponse"
                      }
                    },
                    "get": {
                      "description": "Gets details about a shared template.",
                      "httpMethod": "GET",
                      "id": "designcenter.projects.locations.spaces.sharedTemplates.get",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}",
                      "parameters": {
                        "name": {
                          "description": "Required. The shared template name. Format: `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate`",
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "SharedTemplate"
                      }
                    }
                  },
                  "resources": {
                    "revisions": {
                      "methods": {
                        "get": {
                          "description": "Gets details about a shared template revision.",
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "SharedTemplateRevision"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions/{revisionsId}",
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "description": "Required. The shared template revision name, in the following format: `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate/revisions/$revision`",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.get",
                          "httpMethod": "GET"
                        },
                        "list": {
                          "path": "v1/{+parent}/revisions",
                          "response": {
                            "$ref": "ListSharedTemplateRevisionsResponse"
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/sharedTemplates/{sharedTemplatesId}/revisions",
                          "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"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which shared template revisions to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "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`",
                              "required": true,
                              "type": "string",
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/sharedTemplates/[^/]+$"
                            },
                            "orderBy": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. How the results should be sorted."
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.sharedTemplates.revisions.list",
                          "description": "Lists shared template revisions in a given space."
                        }
                      }
                    }
                  }
                },
                "applications": {
                  "methods": {
                    "deploy": {
                      "description": "Deploys an application.",
                      "id": "designcenter.projects.locations.spaces.applications.deploy",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:deploy",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path"
                        }
                      },
                      "path": "v1/{+name}:deploy",
                      "response": {
                        "$ref": "Operation"
                      },
                      "request": {
                        "$ref": "DeployApplicationRequest"
                      }
                    },
                    "generate": {
                      "path": "v1/{+name}:generate",
                      "response": {
                        "$ref": "GenerateApplicationIaCResponse"
                      },
                      "request": {
                        "$ref": "GenerateApplicationIaCRequest"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.generate",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generate",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "type": "string",
                          "description": "Required. The name of the application.",
                          "required": true
                        }
                      },
                      "description": "Generates Terraform files for an application."
                    },
                    "preview": {
                      "description": "Previews deployment of an application.",
                      "request": {
                        "$ref": "PreviewApplicationRequest"
                      },
                      "path": "v1/{+name}:preview",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:preview",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "type": "string",
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "required": true
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.applications.preview",
                      "httpMethod": "POST"
                    },
                    "delete": {
                      "description": "Deletes an application.",
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Operation"
                      },
                      "httpMethod": "DELETE",
                      "id": "designcenter.projects.locations.spaces.applications.delete",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "required": true,
                          "type": "string"
                        },
                        "force": {
                          "description": "Optional. If set to true, the application's children are also deleted. If false, the application is only deleted if it has no children.",
                          "location": "query",
                          "type": "boolean"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "create": {
                      "path": "v1/{+parent}/applications",
                      "response": {
                        "$ref": "Application"
                      },
                      "request": {
                        "$ref": "Application"
                      },
                      "id": "designcenter.projects.locations.spaces.applications.create",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "parameters": {
                        "parent": {
                          "description": "Required. The parent resource in which to create the application. Format: `projects/$project/locations/$location/spaces/$space`",
                          "required": true,
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path"
                        },
                        "applicationId": {
                          "location": "query",
                          "type": "string",
                          "description": "Required. The ID of the application to create."
                        }
                      },
                      "description": "Creates an application."
                    },
                    "importIaC": {
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:importIaC",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "description": "Required. The name of the application.",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "POST",
                      "id": "designcenter.projects.locations.spaces.applications.importIaC",
                      "request": {
                        "$ref": "ImportApplicationIaCRequest"
                      },
                      "path": "v1/{+name}:importIaC",
                      "response": {
                        "$ref": "ImportApplicationIaCResponse"
                      },
                      "description": "Imports IaC for an application resource."
                    },
                    "patch": {
                      "description": "Updates an application.",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "type": "string",
                          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
                          "required": true
                        },
                        "updateMask": {
                          "description": "Optional. The fields to overwrite in the application update. If you don't provide a mask, all fields are overwritten.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "PATCH",
                      "id": "designcenter.projects.locations.spaces.applications.patch",
                      "request": {
                        "$ref": "Application"
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Application"
                      }
                    },
                    "list": {
                      "description": "Lists applications in a given space.",
                      "httpMethod": "GET",
                      "id": "designcenter.projects.locations.spaces.applications.list",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications",
                      "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"
                        },
                        "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."
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which applications to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. How the results should be sorted."
                        },
                        "parent": {
                          "type": "string",
                          "description": "Required. The parent resource from which to request a list of applications.",
                          "required": true,
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1/{+parent}/applications",
                      "response": {
                        "$ref": "ListApplicationsResponse"
                      }
                    },
                    "generateAssessmentReport": {
                      "path": "v1/{+name}:generateAssessmentReport",
                      "response": {
                        "$ref": "Operation"
                      },
                      "request": {
                        "$ref": "GenerateApplicationAssessmentReportRequest"
                      },
                      "httpMethod": "POST",
                      "id": "designcenter.projects.locations.spaces.applications.generateAssessmentReport",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:generateAssessmentReport",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Generate Assessment Reports of an application."
                    },
                    "get": {
                      "description": "Gets details about an application.",
                      "httpMethod": "GET",
                      "id": "designcenter.projects.locations.spaces.applications.get",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. The application name. Format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Application"
                      }
                    },
                    "fetchAssessmentReport": {
                      "path": "v1/{+name}:fetchAssessmentReport",
                      "response": {
                        "$ref": "FetchApplicationAssessmentReportResponse"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applications/{applicationsId}:fetchAssessmentReport",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applications/[^/]+$",
                          "location": "path",
                          "description": "Required. The application name in the following format: `projects/$project/locations/$location/spaces/$space/applications/$application`",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.applications.fetchAssessmentReport",
                      "httpMethod": "GET",
                      "description": "Fetches the assessment report of a deployed application if present."
                    }
                  }
                },
                "applicationTemplates": {
                  "methods": {
                    "import": {
                      "request": {
                        "$ref": "ImportApplicationTemplateRequest"
                      },
                      "path": "v1/{+name}:import",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:import",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "type": "string",
                          "description": "Required. The name of the application template.",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "POST",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.import",
                      "description": "Imports to an existing application template from a given shared template."
                    },
                    "generate": {
                      "request": {
                        "$ref": "GenerateApplicationTemplateIaCRequest"
                      },
                      "path": "v1/{+name}:generate",
                      "response": {
                        "$ref": "GenerateApplicationTemplateIaCResponse"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generate",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generate",
                      "httpMethod": "POST",
                      "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."
                    },
                    "delete": {
                      "description": "Deletes an application template.",
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Empty"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "parameters": {
                        "name": {
                          "description": "Required. The application template name.",
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        },
                        "force": {
                          "location": "query",
                          "type": "boolean",
                          "description": "Optional. If set to true, the application template's children are also deleted. If false, the application template is only deleted if it has no children."
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.delete",
                      "httpMethod": "DELETE"
                    },
                    "commit": {
                      "httpMethod": "POST",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.commit",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:commit",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. The name of the application template.",
                          "required": true,
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1/{+name}:commit",
                      "response": {
                        "$ref": "ApplicationTemplateRevision"
                      },
                      "request": {
                        "$ref": "CommitApplicationTemplateRequest"
                      },
                      "description": "Commits an application template to create a new revision."
                    },
                    "create": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.create",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "parameters": {
                        "applicationTemplateId": {
                          "location": "query",
                          "type": "string",
                          "description": "Required. The ID of the application template to create."
                        },
                        "parent": {
                          "description": "Required. The parent resource in which to create the application template.",
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$"
                        }
                      },
                      "path": "v1/{+parent}/applicationTemplates",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "description": "Creates an application template."
                    },
                    "export": {
                      "description": "Exports Terraform files for an application template. The generated modules can have remote sources or local sources downloaded from remote. This is an ASYNCHRONOUS operation that returns a Long Running Operation.",
                      "request": {
                        "$ref": "ExportApplicationTemplateIaCRequest"
                      },
                      "path": "v1/{+name}:export",
                      "response": {
                        "$ref": "Operation"
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:export",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "POST",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.export"
                    },
                    "patch": {
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.patch",
                      "httpMethod": "PATCH",
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path",
                          "type": "string",
                          "description": "Identifier. Application template name.",
                          "required": true
                        },
                        "updateMask": {
                          "description": "Optional. The fields to overwrite in the application template update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "request": {
                        "$ref": "ApplicationTemplate"
                      },
                      "description": "Updates an application template."
                    },
                    "importIaC": {
                      "description": "Imports IaC for an application template.",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.importIaC",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:importIaC",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the application template.",
                          "required": true,
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path"
                        }
                      },
                      "path": "v1/{+name}:importIaC",
                      "response": {
                        "$ref": "ImportApplicationTemplateIaCResponse"
                      },
                      "request": {
                        "$ref": "ImportApplicationTemplateIaCRequest"
                      }
                    },
                    "list": {
                      "description": "Lists application templates in a given space.",
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates",
                      "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"
                        },
                        "filter": {
                          "description": "Optional. A filter that chooses which shared template revisions to return.",
                          "location": "query",
                          "type": "string"
                        },
                        "pageToken": {
                          "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                          "location": "query",
                          "type": "string"
                        },
                        "parent": {
                          "description": "Required. The parent resource from which to list application templates.",
                          "required": true,
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+$",
                          "location": "path"
                        },
                        "orderBy": {
                          "description": "Optional. How the results should be sorted.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.list",
                      "httpMethod": "GET",
                      "path": "v1/{+parent}/applicationTemplates",
                      "response": {
                        "$ref": "ListApplicationTemplatesResponse"
                      }
                    },
                    "generateAssessmentReport": {
                      "request": {
                        "$ref": "GenerateApplicationTemplateAssessmentReportRequest"
                      },
                      "path": "v1/{+name}:generateAssessmentReport",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}:generateAssessmentReport",
                      "parameters": {
                        "name": {
                          "description": "Required. The application template name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                          "required": true,
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path"
                        }
                      },
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.generateAssessmentReport",
                      "httpMethod": "POST",
                      "description": "Generate Assessment Reports of an application template."
                    },
                    "get": {
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "ApplicationTemplate"
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. The application template name.",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                          "location": "path"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "GET",
                      "id": "designcenter.projects.locations.spaces.applicationTemplates.get",
                      "description": "Gets details about an application template."
                    }
                  },
                  "resources": {
                    "policies": {
                      "methods": {
                        "patch": {
                          "description": "Updates a policy.",
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "httpMethod": "PATCH",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.patch",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "parameters": {
                            "name": {
                              "type": "string",
                              "description": "Identifier. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "location": "path"
                            },
                            "updateMask": {
                              "description": "Optional. The fields to overwrite in the policy update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten.",
                              "location": "query",
                              "type": "string",
                              "format": "google-fieldmask"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "get": {
                          "description": "Policy related APIs. Get a policy for an application template.",
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "location": "path",
                              "type": "string",
                              "description": "Required. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
                              "required": true
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.get"
                        },
                        "create": {
                          "description": "Creates a policy for an application template.",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.create",
                          "httpMethod": "POST",
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "parameters": {
                            "policyId": {
                              "description": "Required. The ID of the policy to create.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "description": "Required. The parent resource in which to create the policy in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "v1/{+parent}/policies",
                          "response": {
                            "$ref": "DesignCenterPolicy"
                          },
                          "request": {
                            "$ref": "DesignCenterPolicy"
                          }
                        },
                        "list": {
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies",
                          "parameters": {
                            "pageToken": {
                              "description": "Optional. If present, retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "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"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which policies to return.",
                              "location": "query",
                              "type": "string"
                            },
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "location": "path",
                              "type": "string",
                              "description": "Required. The parent application template from which policies are listed in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate`",
                              "required": true
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.list",
                          "path": "v1/{+parent}/policies",
                          "response": {
                            "$ref": "ListPoliciesResponse"
                          },
                          "description": "Lists policies for an application template."
                        },
                        "delete": {
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Empty"
                          },
                          "httpMethod": "DELETE",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.policies.delete",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/policies/{policiesId}",
                          "parameters": {
                            "name": {
                              "type": "string",
                              "description": "Required. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/policies/[^/]+$",
                              "location": "path"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Deletes a policy."
                        }
                      }
                    },
                    "systemRevisions": {
                      "methods": {
                        "get": {
                          "description": "Gets the given application template system revision.",
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "ApplicationTemplateSystemRevision"
                          },
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.get",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions/{systemRevisionsId}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/systemRevisions/[^/]+$",
                              "description": "Required. The name of the ApplicationTemplateSystemRevision to retrieve. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "list": {
                          "path": "v1/{+parent}/systemRevisions",
                          "response": {
                            "$ref": "ListApplicationTemplateSystemRevisionsResponse"
                          },
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.systemRevisions.list",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/systemRevisions",
                          "parameters": {
                            "pageToken": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call."
                            },
                            "parent": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "description": "Required. The parent Application Template from which to list the system revisions. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "location": "query",
                              "type": "integer",
                              "format": "int32",
                              "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."
                            },
                            "filter": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. A filter expression that filters system revisions listed in the response. See https://google.aip.dev/160 for more information on the grammar."
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists application template system revisions in a given application template."
                        }
                      }
                    },
                    "revisions": {
                      "methods": {
                        "export": {
                          "request": {
                            "$ref": "ExportApplicationTemplateRevisionIaCRequest"
                          },
                          "path": "v1/{+name}:export",
                          "response": {
                            "$ref": "Operation"
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:export",
                          "parameters": {
                            "name": {
                              "description": "Required. The name of the application template revision.",
                              "required": true,
                              "type": "string",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "POST",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.export",
                          "description": "Exports Terraform files for an application template revision. The generated modules can have remote sources or local sources downloaded from remote. This is an ASYNCHRONOUS operation that returns a Long Running Operation."
                        },
                        "generate": {
                          "request": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCRequest"
                          },
                          "path": "v1/{+name}:generate",
                          "response": {
                            "$ref": "GenerateApplicationTemplateRevisionIaCResponse"
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}:generate",
                          "parameters": {
                            "name": {
                              "type": "string",
                              "description": "Required. The name of the application template revision.",
                              "required": true,
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "POST",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.generate",
                          "description": "Generates Terraform files for an application template revision. This is a SYNCHRONOUS operation and returns the generated IaC directly in the response. It does NOT download external module sources; it only uses remote sources."
                        },
                        "list": {
                          "description": "Lists application template revisions in a given application template.",
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.list",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions",
                          "parameters": {
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$",
                              "description": "Required. The parent from which to list application template revisions.",
                              "required": true,
                              "type": "string"
                            },
                            "pageToken": {
                              "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                              "location": "query",
                              "type": "string"
                            },
                            "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"
                            },
                            "filter": {
                              "description": "Optional. A filter that chooses which application template revisions to return.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "path": "v1/{+parent}/revisions",
                          "response": {
                            "$ref": "ListApplicationTemplateRevisionsResponse"
                          }
                        },
                        "delete": {
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Empty"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "location": "path",
                              "description": "Required. The application template revision name.",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.delete",
                          "httpMethod": "DELETE",
                          "description": "Deletes an application template revision."
                        },
                        "get": {
                          "description": "Gets details about an application template revision.",
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "ApplicationTemplateRevision"
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/revisions/{revisionsId}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/revisions/[^/]+$",
                              "description": "Required. The application template revision name.",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "GET",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.revisions.get"
                        }
                      }
                    },
                    "components": {
                      "methods": {
                        "list": {
                          "description": "Lists components in an application template.",
                          "path": "v1/{+parent}/components",
                          "response": {
                            "$ref": "ListComponentsResponse"
                          },
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.list",
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "parameters": {
                            "orderBy": {
                              "description": "Optional. How the results should be sorted.",
                              "location": "query",
                              "type": "string"
                            },
                            "parent": {
                              "type": "string",
                              "description": "Required. The parent resource from which the list of components is requested.",
                              "required": true,
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                            },
                            "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"
                            },
                            "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."
                            },
                            "filter": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. A filter that chooses which components to return."
                            }
                          }
                        },
                        "delete": {
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Empty"
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "location": "path",
                              "description": "Required. The component name.",
                              "required": true,
                              "type": "string"
                            },
                            "force": {
                              "location": "query",
                              "type": "boolean",
                              "description": "Optional. If set to true, the component's children are also deleted. If false, the component is only deleted if it has no children."
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "DELETE",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.delete",
                          "description": "Deletes a component."
                        },
                        "get": {
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.get",
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "parameters": {
                            "name": {
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "description": "Required. The component name.",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Component"
                          },
                          "description": "Gets details about a Component."
                        },
                        "create": {
                          "path": "v1/{+parent}/components",
                          "response": {
                            "$ref": "Component"
                          },
                          "request": {
                            "$ref": "Component"
                          },
                          "httpMethod": "POST",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.create",
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components",
                          "parameters": {
                            "parent": {
                              "type": "string",
                              "description": "Required. The parent resource in which to create the component.",
                              "required": true,
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+$"
                            },
                            "componentId": {
                              "description": "Required. The ID of the component to create.",
                              "location": "query",
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Creates a component."
                        },
                        "patch": {
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}",
                          "parameters": {
                            "name": {
                              "type": "string",
                              "description": "Identifier. The component name.",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$",
                              "location": "path"
                            },
                            "updateMask": {
                              "description": "Optional. The fields to overwrite in the component update. If you don't provide a mask, all fields are overwritten.",
                              "location": "query",
                              "type": "string",
                              "format": "google-fieldmask"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "httpMethod": "PATCH",
                          "id": "designcenter.projects.locations.spaces.applicationTemplates.components.patch",
                          "request": {
                            "$ref": "Component"
                          },
                          "path": "v1/{+name}",
                          "response": {
                            "$ref": "Component"
                          },
                          "description": "Updates a component."
                        }
                      },
                      "resources": {
                        "connections": {
                          "methods": {
                            "list": {
                              "description": "Lists connections in an application template.",
                              "httpMethod": "GET",
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.list",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "parameters": {
                                "parent": {
                                  "type": "string",
                                  "description": "Required. The parent resource from which to request a list of connections.",
                                  "required": true,
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$"
                                },
                                "orderBy": {
                                  "description": "Optional. How the results should be sorted.",
                                  "location": "query",
                                  "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"
                                },
                                "filter": {
                                  "description": "Optional. A filter that chooses which connections to return.",
                                  "location": "query",
                                  "type": "string"
                                },
                                "pageToken": {
                                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                                  "location": "query",
                                  "type": "string"
                                }
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "path": "v1/{+parent}/connections",
                              "response": {
                                "$ref": "ListConnectionsResponse"
                              }
                            },
                            "delete": {
                              "description": "Deletes a connection.",
                              "path": "v1/{+name}",
                              "response": {
                                "$ref": "Empty"
                              },
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.delete",
                              "httpMethod": "DELETE",
                              "parameterOrder": [
                                "name"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "type": "string",
                                  "description": "Required. The connection name.",
                                  "required": true
                                }
                              }
                            },
                            "get": {
                              "description": "Gets details about a connection.",
                              "path": "v1/{+name}",
                              "response": {
                                "$ref": "Connection"
                              },
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "parameters": {
                                "name": {
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "type": "string",
                                  "description": "Required. Name of the resource",
                                  "required": true
                                }
                              },
                              "parameterOrder": [
                                "name"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "httpMethod": "GET",
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.get"
                            },
                            "create": {
                              "description": "Creates a connection.",
                              "path": "v1/{+parent}/connections",
                              "response": {
                                "$ref": "Connection"
                              },
                              "request": {
                                "$ref": "Connection"
                              },
                              "httpMethod": "POST",
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.create",
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections",
                              "parameters": {
                                "parent": {
                                  "type": "string",
                                  "description": "Required. The parent resource in which to create a connection.",
                                  "required": true,
                                  "location": "path",
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+$"
                                },
                                "connectionId": {
                                  "location": "query",
                                  "type": "string",
                                  "description": "Required. The ID of the connection to create."
                                }
                              },
                              "parameterOrder": [
                                "parent"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ]
                            },
                            "patch": {
                              "description": "Updates a connection.",
                              "id": "designcenter.projects.locations.spaces.applicationTemplates.components.connections.patch",
                              "httpMethod": "PATCH",
                              "parameterOrder": [
                                "name"
                              ],
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ],
                              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spaces/{spacesId}/applicationTemplates/{applicationTemplatesId}/components/{componentsId}/connections/{connectionsId}",
                              "parameters": {
                                "name": {
                                  "pattern": "^projects/[^/]+/locations/[^/]+/spaces/[^/]+/applicationTemplates/[^/]+/components/[^/]+/connections/[^/]+$",
                                  "location": "path",
                                  "description": "Identifier. The connection name.",
                                  "required": true,
                                  "type": "string"
                                },
                                "updateMask": {
                                  "location": "query",
                                  "type": "string",
                                  "format": "google-fieldmask",
                                  "description": "Optional. Fields to overwrite in the connection update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If you don't provide a mask, all fields are overwritten."
                                }
                              },
                              "path": "v1/{+name}",
                              "response": {
                                "$ref": "Connection"
                              },
                              "request": {
                                "$ref": "Connection"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "operations": {
              "methods": {
                "list": {
                  "id": "designcenter.projects.locations.operations.list",
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation's parent resource.",
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "location": "query",
                      "type": "integer",
                      "format": "int32",
                      "description": "The standard list page size."
                    },
                    "pageToken": {
                      "location": "query",
                      "type": "string",
                      "description": "The standard list page token."
                    },
                    "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."
                    }
                  },
                  "path": "v1/{+name}/operations",
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`."
                },
                "delete": {
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Empty"
                  },
                  "id": "designcenter.projects.locations.operations.delete",
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "description": "The name of the operation resource to be deleted.",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "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`."
                },
                "get": {
                  "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.",
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "description": "The name of the operation resource.",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "id": "designcenter.projects.locations.operations.get",
                  "httpMethod": "GET"
                },
                "cancel": {
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "path": "v1/{+name}:cancel",
                  "response": {
                    "$ref": "Empty"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "type": "string",
                      "description": "The name of the operation resource to be cancelled.",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "POST",
                  "id": "designcenter.projects.locations.operations.cancel",
                  "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`."
                }
              }
            }
          },
          "methods": {
            "list": {
              "id": "designcenter.projects.locations.list",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/locations",
              "parameters": {
                "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"
                },
                "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)."
                },
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "extraLocationTypes": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "repeated": true
                },
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "required": true,
                  "type": "string",
                  "location": "path",
                  "pattern": "^projects/[^/]+$"
                }
              },
              "path": "v1/{+name}/locations",
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version."
            },
            "fetchFrameworks": {
              "path": "v1/{+parent}:fetchFrameworks",
              "response": {
                "$ref": "FetchFrameworksResponse"
              },
              "id": "designcenter.projects.locations.fetchFrameworks",
              "httpMethod": "GET",
              "parameterOrder": [
                "parent"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:fetchFrameworks",
              "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."
                },
                "filter": {
                  "description": "Optional. Filter for frameworks list.",
                  "location": "query",
                  "type": "string"
                },
                "pageToken": {
                  "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "type": "string",
                  "description": "Required. The parent resource name. Format: projects/{project}/locations/{location}",
                  "required": true,
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path"
                },
                "projects": {
                  "description": "Optional. Projects to fetch frameworks for. Format: projects/{project}",
                  "repeated": true,
                  "location": "query",
                  "type": "string"
                }
              },
              "description": "Fetches all frameworks for assessment report."
            },
            "get": {
              "description": "Gets information about a location.",
              "parameterOrder": [
                "name"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
              "parameters": {
                "name": {
                  "description": "Resource name for the location.",
                  "required": true,
                  "type": "string",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path"
                }
              },
              "id": "designcenter.projects.locations.get",
              "httpMethod": "GET",
              "path": "v1/{+name}",
              "response": {
                "$ref": "Location"
              }
            }
          }
        }
      }
    }
  },
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "title": "Design Center API",
  "canonicalName": "Application Design Center",
  "description": "Design and share deployable application architectures.",
  "rootUrl": "https://designcenter.googleapis.com/",
  "version_module": true,
  "baseUrl": "https://designcenter.googleapis.com/",
  "ownerName": "Google",
  "fullyEncodeReservedExpansion": true,
  "schemas": {
    "AssetDetails": {
      "description": "Details of a Cloud Asset Inventory asset that caused the finding.",
      "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"
        }
      }
    },
    "IaCModule": {
      "type": "object",
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "$ref": "IaCFile"
          },
          "description": "Optional. The files in the module."
        }
      },
      "description": "IaCModule represents a single infrastructure as code module.",
      "id": "IaCModule"
    },
    "ComponentParameterSchema": {
      "description": "Component parameter schema, which contains a list of all component parameters.",
      "id": "ComponentParameterSchema",
      "type": "object",
      "properties": {
        "isRequired": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Whether the parameter is required."
        },
        "defaultValue": {
          "description": "Output only. The default value of the parameter.",
          "readOnly": true,
          "type": "any"
        },
        "key": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The key of the parameter."
        },
        "type": {
          "description": "Output only. The type of the parameter.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "AlternateDefault": {
      "description": "Alternate default for a UI input.",
      "id": "AlternateDefault",
      "type": "object",
      "properties": {
        "type": {
          "description": "Output only. Type of alternate default.",
          "enum": [
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_DC"
          ],
          "enumDescriptions": [
            "Default",
            "A more secure default.",
            "A default specifically needed for Application Design center."
          ],
          "type": "string",
          "readOnly": true
        },
        "value": {
          "readOnly": true,
          "type": "any",
          "description": "Output only. Value of the alternate default."
        }
      }
    },
    "CatalogTemplateRevision": {
      "id": "CatalogTemplateRevision",
      "description": "Template revisions inside a catalog.",
      "properties": {
        "type": {
          "description": "Optional. The Application Design Center application template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "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."
          ],
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ]
        },
        "applicationTemplateRevision": {
          "description": "Output only. The application template revision.",
          "$ref": "SerializedApplicationTemplate",
          "readOnly": true
        },
        "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"
        },
        "annotations": {
          "description": "Optional. The annotations of the template revision. Key is the annotation name. Value is the annotation value.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "$ref": "HelmChartMetadata",
          "readOnly": true
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The catalog template creation timestamp."
        },
        "templateCategory": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ],
          "description": "Output only. The category of the template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "readOnly": true,
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ]
        },
        "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]."
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "description": {
          "description": "Optional. The catalog template revision description.",
          "type": "string"
        },
        "logicalProducts": {
          "description": "Output only. The Product Main logical product type information.",
          "items": {
            "$ref": "LogicalProduct"
          },
          "type": "array",
          "readOnly": true
        },
        "uuid": {
          "description": "Output only. UUID of the template revision.",
          "type": "string",
          "readOnly": true
        },
        "templateMetadata": {
          "readOnly": true,
          "description": "Output only. Template metadata related to Terraform input and output.",
          "$ref": "TFBlueprintMetadata"
        },
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "state": {
          "description": "Output only. The template state (validating/ready/invalid).",
          "enum": [
            "STATE_UNSPECIFIED",
            "VALIDATING",
            "ACTIVE",
            "INVALID"
          ],
          "enumDescriptions": [
            "Default.",
            "The template is being validated.",
            "The template is ready to be used.",
            "The template is invalid."
          ],
          "type": "string",
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The catalog template revision name. `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template/revisions/$revision`",
          "type": "string"
        },
        "inferredMetadata": {
          "readOnly": true,
          "description": "Output only. Metadata that was automatically inferred from the template content. This field can be updated by the system as it gets new information.",
          "$ref": "InferredMetadata"
        },
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "resourceTypes": {
          "description": "Output only. The resource types present in the template revision.",
          "items": {
            "$ref": "ResourceType"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "TerraformUiInput": {
      "type": "object",
      "properties": {
        "terraformUiInputs": {
          "description": "Output only. Terraform UI inputs.",
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          },
          "type": "object",
          "readOnly": true
        }
      },
      "description": "Terraform blueprint UI input.",
      "id": "TerraformUiInput"
    },
    "HelmChartInput": {
      "description": "Helm Chart inputs. Documentation: https://helm.sh/docs/",
      "id": "HelmChartInput",
      "type": "object",
      "properties": {
        "type": {
          "description": "Output only. Input data type.",
          "readOnly": true,
          "type": "string"
        },
        "isRequired": {
          "description": "Output only. Indicates if input is required.",
          "type": "boolean",
          "readOnly": true
        },
        "description": {
          "description": "Output only. Input variable description.",
          "type": "string",
          "readOnly": true
        },
        "defaultValue": {
          "description": "Output only. The default value of the input variable.",
          "type": "any",
          "readOnly": true
        },
        "nestedInputs": {
          "type": "object",
          "readOnly": true,
          "description": "Output only. Contains details of nested inputs.",
          "additionalProperties": {
            "$ref": "HelmChartInput"
          }
        },
        "helmInputVariable": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Input variable name present in Helm Chart values.yaml"
        }
      }
    },
    "GenerateApplicationTemplateIaCRequest": {
      "description": "Request message for GenerateApplicationTemplateIaC method.",
      "id": "GenerateApplicationTemplateIaCRequest",
      "type": "object",
      "properties": {
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI to write the generated IaC to. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        },
        "iacFormat": {
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "description": "Optional. The IaC format to generate.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "type": "string"
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        }
      }
    },
    "PreviewOperationMetadata": {
      "id": "PreviewOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the preview operation.",
      "properties": {
        "previewStep": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The current step of the preview. The possible steps a preview may be running as returned by the Infrastructure. Manager."
        },
        "previewBuild": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with the preview operation."
        },
        "previewLogs": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Location of the preview operation logs in `gs://{bucket}/{object}` format."
        },
        "resources": {
          "items": {
            "$ref": "Resource"
          },
          "description": "Details of the Resourcess in the deployment.",
          "type": "array"
        }
      },
      "type": "object"
    },
    "Catalog": {
      "id": "Catalog",
      "description": "A catalog is a collection of templates.",
      "properties": {
        "displayName": {
          "description": "Optional. The catalog display name.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The catalog name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog`",
          "type": "string"
        },
        "description": {
          "description": "Optional. The catalog description.",
          "type": "string"
        },
        "updateTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The catalog update timestamp."
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The catalog creation timestamp."
        }
      },
      "type": "object"
    },
    "ComponentOutputParameters": {
      "type": "object",
      "properties": {
        "component": {
          "description": "Output only. The component name of the output parameters.",
          "type": "string",
          "readOnly": true
        },
        "parameters": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. The output parameters of the component.",
          "items": {
            "$ref": "Parameter"
          }
        }
      },
      "description": "The component output parameters of the deployment.",
      "id": "ComponentOutputParameters"
    },
    "AssessmentFinding": {
      "properties": {
        "additionalNotes": {
          "description": "Optional. A description of the additional details about finding.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The Finding ID."
        },
        "adcMetadata": {
          "readOnly": true,
          "description": "Output only. Metadata related to the Application Design Center with the finding.",
          "$ref": "FindingADCMetadata"
        },
        "severity": {
          "type": "string",
          "description": "Optional. The severity of the finding.",
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ],
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Critical severity.",
            "High severity.",
            "Medium severity.",
            "Low severity."
          ]
        },
        "assessedFrameworkId": {
          "description": "Optional. The framework that was assessed.",
          "type": "string"
        },
        "assessedAsset": {
          "description": "Required. Details of the Cloud Asset Inventory asset that was assessed.",
          "$ref": "AssetDetails"
        },
        "assessedFramework": {
          "description": "Optional. Details of the framework that was assessed.",
          "$ref": "Framework"
        },
        "description": {
          "description": "Optional. Description of the finding.",
          "type": "string"
        },
        "findingsUri": {
          "description": "Optional. Link to the findings, if persisted by the domain.",
          "type": "string"
        },
        "remediationStep": {
          "description": "Optional. A description of the steps that users can take to fix the finding.",
          "$ref": "RemediationStep"
        },
        "findingType": {
          "description": "Required. The type of the finding. Findings can be informational, warning, or error.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "WARNING",
            "ERROR"
          ],
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Warning finding. Deployment will not be blocked.",
            "Error finding. Deployment will be blocked on ERROR."
          ],
          "type": "string"
        },
        "sccMetadata": {
          "description": "Output only. SCC related metadata for the finding.",
          "$ref": "SCCMetadata",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "AssessmentFinding",
      "description": "Details of an Assessment Finding."
    },
    "Attributes": {
      "id": "Attributes",
      "description": "Consumer provided attributes.",
      "properties": {
        "criticality": {
          "description": "Optional. User-defined criticality information.",
          "$ref": "Criticality"
        },
        "operatorOwners": {
          "items": {
            "$ref": "ContactInfo"
          },
          "description": "Optional. Operator team that ensures runtime and operations.",
          "type": "array"
        },
        "businessOwners": {
          "type": "array",
          "items": {
            "$ref": "ContactInfo"
          },
          "description": "Optional. Business team that ensures user needs are met and value is delivered"
        },
        "environment": {
          "description": "Optional. User-defined environment information.",
          "$ref": "Environment"
        },
        "developerOwners": {
          "type": "array",
          "items": {
            "$ref": "ContactInfo"
          },
          "description": "Optional. Developer team that owns development and coding."
        }
      },
      "type": "object"
    },
    "CatalogTemplate": {
      "description": "A template inside a catalog.",
      "id": "CatalogTemplate",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The catalog template name in following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/templates/$template`",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The catalog template update timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "createTime": {
          "description": "Output only. The catalog template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "templateCategory": {
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "type": "string",
          "description": "Required. The category of the Application Design Center application template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ]
        },
        "type": {
          "type": "string",
          "description": "Optional. The Application Design Center application template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ]
        },
        "displayName": {
          "description": "Optional. The display name of a catalog template.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The catalog template description.",
          "type": "string"
        },
        "latestRevisionId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Latest revision of the template."
        },
        "uuid": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The template revisions UUID."
        }
      }
    },
    "ApiInfo": {
      "type": "object",
      "properties": {
        "api": {
          "description": "Required. API name, such as `compute.googleapis.com`.",
          "type": "string"
        },
        "systemProvided": {
          "description": "Output only. When true, indicates that this API was automatically added by Application Design Center. APIs provided by users will have this field set to false.",
          "type": "boolean",
          "readOnly": true
        }
      },
      "description": "ApiInfo represents an API along with its origin.",
      "id": "ApiInfo"
    },
    "Expr": {
      "properties": {
        "expression": {
          "description": "Textual representation of an expression in Common Expression Language syntax.",
          "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"
        },
        "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"
        },
        "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",
      "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."
    },
    "HelmChartMetadata": {
      "id": "HelmChartMetadata",
      "description": "Helm Chart metadata.",
      "properties": {
        "helmOutput": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. Helm Chart outputs.",
          "items": {
            "$ref": "HelmChartOutput"
          }
        },
        "helmInput": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "HelmChartInput"
          },
          "description": "Output only. Helm Chart inputs."
        }
      },
      "type": "object"
    },
    "GKEDeploymentTarget": {
      "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"
        }
      },
      "type": "object",
      "id": "GKEDeploymentTarget",
      "description": "The GKE deployment target."
    },
    "DeploymentMetadata": {
      "properties": {
        "componentOutputParameters": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. The component output parameters of the deployment.",
          "items": {
            "$ref": "ComponentOutputParameters"
          }
        },
        "applicationOutputParameters": {
          "readOnly": true,
          "description": "Output only. The application output parameters of the deployment.",
          "$ref": "ApplicationOutputParameters"
        },
        "workerPool": {
          "type": "string",
          "readOnly": true,
          "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}`."
        },
        "build": {
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "type": "string",
          "readOnly": true
        },
        "revision": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The revision of the deployment associated with the Application."
        },
        "error": {
          "description": "Output only. The error associated with the deployment.",
          "$ref": "DeploymentError",
          "readOnly": true
        },
        "retryAttempts": {
          "description": "Output only. The attempted number of deployment retries.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        }
      },
      "type": "object",
      "id": "DeploymentMetadata",
      "description": "Deployment information for the application."
    },
    "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.",
      "id": "AuditConfig",
      "type": "object",
      "properties": {
        "service": {
          "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.",
          "type": "string"
        },
        "auditLogConfigs": {
          "items": {
            "$ref": "AuditLogConfig"
          },
          "description": "The configuration for logging of each type of permission.",
          "type": "array"
        }
      }
    },
    "DesignCenterPolicy": {
      "description": "A Policy is a resource within an Application Template that refers to a Policy that you author outside of Application Design Center and attach to an application template.",
      "id": "DesignCenterPolicy",
      "type": "object",
      "properties": {
        "applyConditions": {
          "description": "Optional. Conditions for applying the policy. Condition accepts the `criticality` and `environment` parameters from the application template.",
          "items": {
            "$ref": "ApplyCondition"
          },
          "type": "array"
        },
        "policyType": {
          "type": "string",
          "description": "Required. The policy type. Policy type is used to determine the domain of the policy.",
          "enum": [
            "POLICY_TYPE_UNSPECIFIED",
            "COMPLIANCE_FRAMEWORK"
          ],
          "enumDescriptions": [
            "Default.",
            "Compliance framework policy."
          ]
        },
        "createTime": {
          "description": "Output only. The policy creation timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "updateTime": {
          "description": "Output only. The policy update timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The policy name in the following format: `projects/$project/locations/$location/spaces/$space/applicationTemplates/$applicationTemplate/policies/$policy`",
          "type": "string"
        },
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The policy description.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. The policy display name.",
          "type": "string"
        },
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        }
      }
    },
    "FetchFrameworksResponse": {
      "id": "FetchFrameworksResponse",
      "description": "Response for FetchFrameworks rpc",
      "properties": {
        "frameworks": {
          "items": {
            "$ref": "Framework"
          },
          "description": "The list of frameworks.",
          "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"
        }
      },
      "type": "object"
    },
    "ProvisionDeploymentGroupOperationMetadata": {
      "properties": {
        "deploymentStep": {
          "type": "string",
          "description": "Output only. Current step of deploying composite application",
          "enum": [
            "DEPLOYMENT_STEP_UNSPECIFIED",
            "GENERATING_TERRAFORM_CONTENT",
            "DEPLOYING",
            "SUCCEEDED",
            "FAILED"
          ],
          "enumDescriptions": [
            "Unspecified deployment step.",
            "Generating Terraform content for the application.",
            "Deploying the application.",
            "Operation was successful.",
            "Operation failed."
          ],
          "readOnly": true
        },
        "deploymentUnitProgress": {
          "description": "Output only. List of deployment unit deployment progress",
          "items": {
            "$ref": "DeploymentUnitProgress"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "ProvisionDeploymentGroupOperationMetadata",
      "description": "Represents the Provision Deployment Group operation metadata."
    },
    "ListApplicationsResponse": {
      "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"
        },
        "applications": {
          "items": {
            "$ref": "Application"
          },
          "description": "The list of applications.",
          "type": "array"
        },
        "unreachable": {
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Message for response to listing applications.",
      "id": "ListApplicationsResponse"
    },
    "AssessedFramework": {
      "type": "object",
      "properties": {
        "findings": {
          "type": "array",
          "items": {
            "$ref": "AssessmentFinding"
          },
          "description": "Required. A list of every Finding found during the assessment."
        },
        "scoreCard": {
          "description": "Optional. Score card associated with the report.",
          "$ref": "ScoreCard"
        },
        "skippedReason": {
          "description": "Optional. Reason for skipping the framework during assessment.",
          "type": "string"
        },
        "framework": {
          "description": "Required. The framework that was assessed.",
          "$ref": "Framework"
        },
        "skipped": {
          "description": "Optional. Whether the framework was skipped during assessment.",
          "type": "boolean"
        }
      },
      "description": "Framework assessed and their findings.",
      "id": "AssessedFramework"
    },
    "GenerateApplicationIaCResponse": {
      "properties": {
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application.",
          "$ref": "RootModulesMetadata"
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "gcsUri": {
          "description": "The Cloud Storage URI of the generated IaC. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "GenerateApplicationIaCResponse",
      "description": "Response message for GenerateApplicationIaC method."
    },
    "GenerateTerraformPlanAssessmentReportRequest": {
      "description": "Message for the request to generate a best practice report for a given Terraform plan at the collection level.",
      "id": "GenerateTerraformPlanAssessmentReportRequest",
      "type": "object",
      "properties": {
        "terraformPlan": {
          "type": "string",
          "format": "byte",
          "description": "Required. The raw JSON representation of the generated Terraform plan, provided as bytes."
        },
        "additionalFrameworks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. Additional Frameworks to run assessment against. If empty, run against default frameworks. Frameworks refers to the policies."
        }
      }
    },
    "DeploymentOperationMetadata": {
      "description": "Ephemeral metadata depicting the state of the deployment operation.",
      "id": "DeploymentOperationMetadata",
      "type": "object",
      "properties": {
        "resources": {
          "description": "Details of the Resourcess in the deployment.",
          "items": {
            "$ref": "Resource"
          },
          "type": "array"
        },
        "deployment": {
          "description": "Output only. The name of the deployment associated with the application.",
          "type": "string",
          "readOnly": true
        },
        "deploymentLogs": {
          "description": "Output only. Location of the deployment operation logs in `gs://{bucket}/{object}` format.",
          "readOnly": true,
          "type": "string"
        },
        "deploymentStep": {
          "description": "Output only. The current step of the deployment. This will mimic the DeploymentStep enum in the deployment proto.",
          "type": "string",
          "readOnly": true
        },
        "deploymentBuild": {
          "description": "Output only. Cloud Build instance UUID associated with this deployment.",
          "readOnly": true,
          "type": "string"
        },
        "previousAttempt": {
          "description": "Previous deployment attempt metadata.",
          "$ref": "DeploymentAttemptMetadata"
        }
      }
    },
    "RootInputVariable": {
      "type": "object",
      "properties": {
        "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"
        },
        "defaultValue": {
          "description": "Default value of the input variable.",
          "type": "any"
        }
      },
      "description": "Input variable of a root module.",
      "id": "RootInputVariable"
    },
    "ConnectionConfig": {
      "type": "object",
      "properties": {
        "connectionUri": {
          "description": "Required. The connection URI.",
          "type": "string"
        },
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "destinationComponentParameters": {
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the destination component."
        }
      },
      "description": "Connection configuration for the application.",
      "id": "ConnectionConfig"
    },
    "DeployApplicationRequest": {
      "id": "DeployApplicationRequest",
      "description": "Message for deploying an application.",
      "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 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"
        },
        "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"
        },
        "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"
        }
      },
      "type": "object"
    },
    "UpdatedTemplateRevision": {
      "type": "object",
      "properties": {
        "templateDisplayName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The display name of the template. If the display name is not available, the template resource name is used."
        },
        "templateRevision": {
          "description": "Output only. The details of the updated template revision.",
          "type": "string",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The time when the template was created."
        }
      },
      "description": "The updated template revision, which results in an outdated application.",
      "id": "UpdatedTemplateRevision"
    },
    "DeploymentAttemptMetadata": {
      "properties": {
        "attempt": {
          "description": "The sequential number of the attempt (starting from 1).",
          "type": "integer",
          "format": "int32"
        },
        "errorDetail": {
          "description": "Human readable string that summarizes the deployment error issue.",
          "type": "string"
        },
        "build": {
          "description": "The build or execution ID associated with this specific attempt. This can be used to link back to logs or trace information.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "DeploymentAttemptMetadata",
      "description": "DeploymentAttemptMetadata represents a previous deployment attempt for an operation that failed due to a retryable error."
    },
    "SerializedConnection": {
      "id": "SerializedConnection",
      "description": "Serialized connection.",
      "properties": {
        "sourceComponentParameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The parameters of the connection associated with the source component.",
          "type": "array"
        },
        "destinationComponentUri": {
          "description": "Optional. The destination component URI used to generate the connection.",
          "type": "string"
        },
        "uri": {
          "description": "Optional. The connection URI.",
          "type": "string"
        },
        "destinationComponentParameters": {
          "type": "array",
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "items": {
            "$ref": "Parameter"
          }
        }
      },
      "type": "object"
    },
    "CompositeApplicationParameters": {
      "description": "Holds parameters that are specific to composite applications.",
      "id": "CompositeApplicationParameters",
      "type": "object",
      "properties": {
        "projectParametersMap": {
          "description": "Output only. A map from a component's URI to its project parameters. The key format is: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/components/{component}",
          "additionalProperties": {
            "$ref": "ProjectParametersList"
          },
          "type": "object",
          "readOnly": true
        },
        "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"
        }
      }
    },
    "TerraformModuleConfig": {
      "type": "object",
      "properties": {
        "localReferencesEnabled": {
          "description": "Optional. If set, all the dependent modules will be downloaded from the target repository and referenced locally.",
          "type": "boolean"
        },
        "gitProxyEnabled": {
          "description": "Optional. This is typically only valid for 3P components if ingested via devconnect URI. Typically, for 1P components, since they are sourced from public git repos, this field is not applicable.",
          "type": "boolean"
        }
      },
      "description": "Configuration on how terraform module should be handled during export.",
      "id": "TerraformModuleConfig"
    },
    "TFBlueprintMetadata": {
      "description": "Terraform input and output metadata.",
      "id": "TFBlueprintMetadata",
      "type": "object",
      "properties": {
        "terraformInput": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInput"
          },
          "description": "Output only. Terraform inputs."
        },
        "apis": {
          "description": "Output only. APIs that must be enabled to deploy the template, in the form of \"compute.googleapis.com\".",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Output only. IAM roles required by the service account deploying the template, in the form of \"roles/compute.admin\".",
          "readOnly": true,
          "type": "array"
        },
        "terraformOutput": {
          "description": "Output only. Terraform outputs.",
          "items": {
            "$ref": "TerraformOutput"
          },
          "type": "array",
          "readOnly": true
        },
        "deploymentDuration": {
          "type": "string",
          "format": "google-duration",
          "description": "Optional. The time estimate for deploying the blueprint."
        },
        "iconUri": {
          "description": "Output only. The icon URI for the blueprint.",
          "readOnly": true,
          "type": "string"
        },
        "connections": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInputConnections"
          },
          "description": "Output only. Union of all the Terraform input connections."
        },
        "providerVersions": {
          "description": "Output only. Provider versions required to deploy the blueprint.",
          "items": {
            "$ref": "ProviderVersion"
          },
          "type": "array",
          "readOnly": true
        },
        "uiMetadata": {
          "readOnly": true,
          "description": "Output only. UI metadata for the blueprint.",
          "$ref": "TerraformBlueprintUiMetadata"
        }
      }
    },
    "ImportApplicationTemplateRequest": {
      "description": "Request message for ImportApplicationTemplate method.",
      "id": "ImportApplicationTemplateRequest",
      "type": "object",
      "properties": {
        "serializedApplicationTemplate": {
          "description": "Optional. The serialized application template to be imported.",
          "$ref": "SerializedApplicationTemplate"
        },
        "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"
        },
        "annotations": {
          "type": "object",
          "description": "Optional. Annotations to be stored with the new system revision created as a result of this import. Sample annotations from agentic workflows might look like { \"designcenter.googleapis.com/agent_id\": \"gemini-3-flash-v1\", \"designcenter.googleapis.com/llm_agent_summary\": \"Restored to revision Rev-100\", \"designcenter.googleapis.com/external_ref_id\": \"trace-uuid-88921-xyz\", }",
          "additionalProperties": {
            "type": "string"
          }
        },
        "sharedTemplateRevisionUri": {
          "description": "Optional. The source URI for catalog template.",
          "type": "string"
        }
      }
    },
    "GenerateApplicationTemplateIaCResponse": {
      "id": "GenerateApplicationTemplateIaCResponse",
      "description": "Response message for GenerateApplicationTemplateIaC method.",
      "properties": {
        "gcsUri": {
          "deprecated": true,
          "type": "string",
          "description": "The Cloud Storage URI of the generated IaC. DEPRECATED: Use the 'artifact_location' field instead."
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        },
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template.",
          "$ref": "RootModulesMetadata"
        }
      },
      "type": "object"
    },
    "ListConnectionsResponse": {
      "id": "ListConnectionsResponse",
      "description": "Message for response to listing connections.",
      "properties": {
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connections": {
          "type": "array",
          "description": "The list of connections.",
          "items": {
            "$ref": "Connection"
          }
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SyncShareRequest": {
      "type": "object",
      "properties": {},
      "description": "Message for syncing a share of a catalog.",
      "id": "SyncShareRequest"
    },
    "HelmChartOutput": {
      "description": "Helm Chart outputs.",
      "id": "HelmChartOutput",
      "type": "object",
      "properties": {
        "helmOutputVariable": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Output variable name present."
        },
        "value": {
          "description": "Output only. Type of output.",
          "readOnly": true,
          "type": "any"
        },
        "description": {
          "description": "Output only. Description of the variable.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "ComponentApplicationInfo": {
      "description": "This captures the apphub application details associated with the component.",
      "id": "ComponentApplicationInfo",
      "type": "object",
      "properties": {
        "apphubApplicationId": {
          "description": "Required. The application ID of the apphub application. The ID must be 1-63 characters long and should match the regular expression `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.",
          "type": "string"
        },
        "deploymentRegion": {
          "description": "Optional. Deployment region for the component. If the scope is set to REGIONAL, then the apphub application is created in this region, e.g. `us-central1`.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. Display name for the application. The number of characters should be less than 64 characters.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. Attributes of apphub application.",
          "$ref": "Attributes"
        },
        "scope": {
          "description": "Optional. Scope of apphub application.",
          "$ref": "Scope"
        }
      }
    },
    "ListOperationsResponse": {
      "properties": {
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          },
          "type": "array"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations."
    },
    "FetchApplicationAssessmentReportResponse": {
      "id": "FetchApplicationAssessmentReportResponse",
      "description": "Message for response of fetching an application assessment report.",
      "properties": {
        "assessmentReport": {
          "description": "Assessment report for the application.",
          "$ref": "AssessmentReport"
        }
      },
      "type": "object"
    },
    "SharedTemplateRevision": {
      "type": "object",
      "properties": {
        "gitSource": {
          "description": "Optional. The git source.",
          "$ref": "GitSource"
        },
        "applicationTemplateRevisionSource": {
          "description": "Optional. The application template revision source.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The shared template revision description.",
          "type": "string"
        },
        "sharedTemplateMetadata": {
          "readOnly": true,
          "description": "Output only. The shared template metadata.",
          "$ref": "TFBlueprintMetadata"
        },
        "logicalProducts": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "LogicalProduct"
          },
          "description": "Output only. The Product Main logical product type information."
        },
        "gcsSourceUri": {
          "description": "Optional. Deprecated: Added new field tf_module_gcs_uri. The Cloud Storage URI, which must be in the format gs://[bucket] or gs://[bucket]/[object].",
          "deprecated": true,
          "type": "string"
        },
        "ociRepo": {
          "description": "Optional. The Open Container Initiative (OCI) repo source that contains helm charts.",
          "$ref": "OciRepo"
        },
        "resourceTypes": {
          "description": "Output only. The resource types present in the template revision.",
          "items": {
            "$ref": "ResourceType"
          },
          "type": "array",
          "readOnly": true
        },
        "originTemplateRevision": {
          "description": "Output only. The shared template revision refers to the following catalog template revision.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "inferredMetadata": {
          "readOnly": true,
          "description": "Output only. Metadata that was automatically inferred from the template content.",
          "$ref": "InferredMetadata"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "applicationTemplateRevision": {
          "description": "Output only. The serialized application template revision.",
          "$ref": "SerializedApplicationTemplate",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Optional. The Application Design Center assembly template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ],
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ]
        },
        "createTime": {
          "description": "Output only. The shared template revision creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "templateCategory": {
          "readOnly": true,
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "type": "string",
          "description": "Output only. The category of the template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ]
        },
        "helmChartMetadata": {
          "description": "Output only. The helm chart metadata.",
          "$ref": "HelmChartMetadata",
          "readOnly": true
        },
        "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.",
      "id": "SharedTemplateRevision"
    },
    "DeveloperConnectSourceConfig": {
      "id": "DeveloperConnectSourceConfig",
      "description": "This config specifies the location of a source (such as GitHub or Bitbucket) through Developer Connect.",
      "properties": {
        "dir": {
          "description": "Required. The sub-directory within the repository from which to read content. The path must be relative to the repository's root such as dir1/dir2. To read content from the root dir, provide \"/\" as the value of the field.",
          "type": "string"
        },
        "reference": {
          "description": "Required. The reference (for example, a branch, tag, or commit SHA) from which the content should be read.",
          "$ref": "GitReference"
        },
        "fetchedCommitSha": {
          "description": "Output only. The SHA of the commit deduced from GitReference.",
          "type": "string",
          "readOnly": true
        },
        "developerConnectRepoUri": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DeploymentUnitProgress": {
      "properties": {
        "deployment": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Deployment resource of deploying unit ID"
        },
        "deploymentUnitStep": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Current deployment unit step"
        },
        "unitId": {
          "description": "Output only. Deployment unit ID",
          "readOnly": true,
          "type": "string"
        },
        "deploymentBuild": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Deployment build uuid"
        },
        "deploymentStep": {
          "description": "Output only. Current deployment step",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "DeploymentUnitProgress",
      "description": "Single deployment unit progress info"
    },
    "GitSource": {
      "id": "GitSource",
      "description": "Defines how to access a Git source.",
      "properties": {
        "commitSha": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The commit SHA of the git repo deduced from given ref_tag."
        },
        "repo": {
          "description": "Required. Location of the git repo to build.",
          "type": "string"
        },
        "dir": {
          "description": "Optional. Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.",
          "type": "string"
        },
        "developerConnectConfig": {
          "deprecated": true,
          "description": "Optional. This config defines the location of a source through Developer Connect. Used to access private git repos.",
          "$ref": "DeveloperConnectConfig"
        },
        "refTag": {
          "description": "Required. The reference tag of the git repo.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ImportApplicationTemplateIaCRequest": {
      "description": "Request message for ImportApplicationTemplateIaC method.",
      "id": "ImportApplicationTemplateIaCRequest",
      "type": "object",
      "properties": {
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        },
        "allowPartialImport": {
          "description": "Optional. If set to true, partially imports the valid edits in the IaC and ignores the invalid changes. Defaults to false, which means any edits which can't be imported must result in an error.",
          "type": "boolean"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        },
        "developerConnectSourceConfig": {
          "description": "Optional. Configuration for fetching content from source code repository such as GitHub or Bitbucket through Developer Connect.",
          "$ref": "DeveloperConnectSourceConfig"
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI of the terraform code.",
          "type": "string"
        }
      }
    },
    "TemplateInfo": {
      "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"
        }
      },
      "type": "object"
    },
    "PreviewApplicationRequest": {
      "description": "Message for previewing an application.",
      "id": "PreviewApplicationRequest",
      "type": "object",
      "properties": {
        "workerPool": {
          "description": "Optional. The user-specified Worker Pool resource in which the Cloud Build job will execute. Format: projects/{project}/locations/{location}/workerPools/{workerPoolId} If this flag is omitted, the worker pool already defined on the application will be used. If no worker pool is defined on the application, the default Cloud Build worker pool is used. The worker pool must exist in the same region as the application.",
          "type": "string"
        },
        "serviceAccount": {
          "description": "Optional. The email address of the service account to use for this preview operation. - If provided, this service account will be used to execute the preview process, taking precedence over any service_account specified on the Application resource. - The caller must have the 'iam.serviceAccounts.actAs' permission on this service account. - If this field is omitted, the system will use the 'service_account' defined within the Application resource. - We recommend that you provide a service account here or on the Application resource. If you don't provide a service account, the preview will fail. Format: projects/{PROJECT}/serviceAccounts/{EMAIL_ADDRESS}",
          "type": "string"
        }
      }
    },
    "SerializedPolicy": {
      "properties": {
        "displayName": {
          "description": "Optional. The serialized policy display name. The number of characters should be less than 128 characters.",
          "type": "string"
        },
        "policyRevisionUri": {
          "description": "Optional. URI of the policy revision.",
          "type": "string"
        },
        "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"
        },
        "policyType": {
          "type": "string",
          "description": "Required. Policy type will be used to determine the domain of the policy.",
          "enum": [
            "POLICY_TYPE_UNSPECIFIED",
            "COMPLIANCE_FRAMEWORK"
          ],
          "enumDescriptions": [
            "Default.",
            "Compliance framework policy."
          ]
        },
        "policyUri": {
          "description": "Optional. URI of the policy.",
          "type": "string"
        },
        "applyConditions": {
          "type": "array",
          "description": "Optional. The serialized policy apply conditions.",
          "items": {
            "$ref": "ApplyCondition"
          }
        }
      },
      "type": "object",
      "id": "SerializedPolicy",
      "description": "Serialized policy."
    },
    "ApplicationTemplateSystemRevision": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The application template system revision name. Format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/systemRevisions/{system_revision}",
          "type": "string"
        },
        "annotations": {
          "description": "Output only. Annotations from agentic workflows or other system processes. For example: { \"designcenter.googleapis.com/agent_id\": \"gemini-3-flash-v1\", \"designcenter.googleapis.com/llm_agent_summary\": \"Added a Cloud SQL instance\", \"designcenter.googleapis.com/external_ref_id\": \"trace-uuid-88921-xyz\" }",
          "additionalProperties": {
            "type": "string"
          },
          "readOnly": true,
          "type": "object"
        },
        "createTime": {
          "description": "Output only. The application template system revision creation timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "snapshot": {
          "readOnly": true,
          "description": "Output only. The serialized application template snapshot at this revision.",
          "$ref": "SerializedApplicationTemplate"
        }
      },
      "description": "Application template system revision resource.",
      "id": "ApplicationTemplateSystemRevision"
    },
    "Connection": {
      "id": "Connection",
      "description": "Connection resource.",
      "properties": {
        "destinationComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the destination component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The connection creation timestamp."
        },
        "destinationComponentUri": {
          "description": "Required. The destination component URI used to generate the connection. Format is `projects/$project/locations/$location/spaces/$space/applicationTemplates/$application_template/components/$component`",
          "type": "string"
        },
        "sourceComponentParameters": {
          "description": "Optional. The parameters of the connection associated with the source component.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The connection update timestamp."
        },
        "name": {
          "description": "Identifier. The connection name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "IaCFile": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Required. The name of the file.",
          "type": "string"
        },
        "content": {
          "description": "Optional. The content of the file. The content of the file can be read and passed as a string. For example, for a terraform file, the content is the the HCL content of the file.",
          "type": "string"
        }
      },
      "description": "IaCFile represents a single infrastructure as code file.",
      "id": "IaCFile"
    },
    "Empty": {
      "properties": {},
      "type": "object",
      "id": "Empty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }"
    },
    "Channel": {
      "type": "object",
      "properties": {
        "uri": {
          "description": "Required. URI of the channel.",
          "type": "string"
        }
      },
      "description": "Separate message to accommodate custom formats across IRC and Slack.",
      "id": "Channel"
    },
    "TestIamPermissionsResponse": {
      "properties": {
        "permissions": {
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "TestIamPermissionsResponse",
      "description": "Response message for `TestIamPermissions` method."
    },
    "TemplateRequirements": {
      "properties": {
        "providerVersions": {
          "type": "array",
          "items": {
            "$ref": "ProviderVersion"
          },
          "description": "Required. Required provider versions."
        },
        "roles": {
          "type": "array",
          "description": "Required. All roles required for the component",
          "items": {
            "$ref": "TemplateRoles"
          }
        }
      },
      "type": "object",
      "id": "TemplateRequirements",
      "description": "TemplateRequirements defines the roles required and the associated services that need to be enabled to provision Template resources."
    },
    "Domain": {
      "id": "Domain",
      "description": "Domain for assessment.",
      "properties": {
        "displayName": {
          "description": "Optional. The domain display name is user friendly name used for UI.",
          "type": "string"
        },
        "inactive": {
          "description": "Optional. Whether the domain is inactive. Default: false.",
          "type": "boolean"
        },
        "frameworks": {
          "type": "array",
          "description": "Optional. The frameworks that are applicable in this domain.",
          "items": {
            "$ref": "Framework"
          }
        },
        "domainName": {
          "description": "Required. The domain name. Uniquely identifies the domain.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The domain description.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TerraformUiOutput": {
      "description": "Terraform blueprint UI output.",
      "id": "TerraformUiOutput",
      "type": "object",
      "properties": {
        "outputMessage": {
          "description": "Output only. Message to be displayed in the UI.",
          "readOnly": true,
          "type": "string"
        },
        "terraformUiOutputs": {
          "readOnly": true,
          "type": "object",
          "description": "Output only. Visibility of the output.",
          "additionalProperties": {
            "$ref": "TerraformUiOutputDisplay"
          }
        }
      }
    },
    "ImportApplicationTemplateIaCResponse": {
      "type": "object",
      "properties": {
        "applicationTemplate": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "ApplicationTemplate"
        },
        "state": {
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ],
          "description": "The state of the import.",
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "type": "string"
        },
        "errors": {
          "description": "Errors encountered during import.",
          "items": {
            "$ref": "ImportIaCError"
          },
          "type": "array"
        }
      },
      "description": "Response message for ImportApplicationTemplateIaC method.",
      "id": "ImportApplicationTemplateIaCResponse"
    },
    "DeploymentGroupMetadata": {
      "type": "object",
      "properties": {
        "deploymentGroup": {
          "description": "Output only. The deployment group name. Format: projects/{project}/locations/{location}/deploymentGroup/{deployment_group}",
          "readOnly": true,
          "type": "string"
        },
        "deploymentMetadataMap": {
          "description": "Output only. Map of component name to deployment metadata for the component. Key format: projects/{project}/locations/{location}/spaces/{space}/applicationTemplates/{application_template}/components/{component}",
          "additionalProperties": {
            "$ref": "DeploymentMetadata"
          },
          "type": "object",
          "readOnly": true
        }
      },
      "description": "Metadata for the infra manager deployment group. A deployment group in Infrastructure Manager is a logical grouping of one or more deployments.",
      "id": "DeploymentGroupMetadata"
    },
    "ListSharedTemplateRevisionsResponse": {
      "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"
        }
      },
      "type": "object",
      "id": "ListSharedTemplateRevisionsResponse",
      "description": "Message for response to listing shared templates."
    },
    "IacFormatInfo": {
      "description": "IacFormatInfo defines the actuation tool used to provision the Template.",
      "id": "IacFormatInfo",
      "type": "object",
      "properties": {
        "version": {
          "description": "Required. Required version for the actuation tool. required_version = \"\u003e= 0.13\"",
          "type": "string"
        },
        "flavor": {
          "description": "Required. Flavor is the type of the actuation tool.",
          "type": "string"
        }
      }
    },
    "CloudControl": {
      "id": "CloudControl",
      "description": "Cloud control for a framework.",
      "properties": {
        "name": {
          "description": "Required. The name of the cloud control.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The description of the cloud control.",
          "type": "string"
        },
        "majorRevisionId": {
          "type": "integer",
          "format": "int32",
          "description": "Required. The major revision id of the cloud control."
        },
        "enforcementMode": {
          "enumDescriptions": [
            "Enforcement type unspecified.",
            "The cloud control is enforced to prevent non-compliance.",
            "The cloud control is enforced to detect non-compliance.",
            "The cloud control is enforced to audit for non-compliance."
          ],
          "description": "Optional. The enforcement mode of the cloud control.",
          "enum": [
            "ENFORCEMENT_MODE_UNSPECIFIED",
            "PREVENTIVE",
            "DETECTIVE",
            "AUDIT"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListCatalogTemplateRevisionsResponse": {
      "description": "Message for response to listing template revisions.",
      "id": "ListCatalogTemplateRevisionsResponse",
      "type": "object",
      "properties": {
        "catalogTemplateRevisions": {
          "items": {
            "$ref": "CatalogTemplateRevision"
          },
          "description": "The list of template revisions.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "Share": {
      "properties": {
        "name": {
          "description": "Identifier. The share name in the following format: `projects/$project/locations/$location/spaces/$space/catalogs/$catalog/shares/$share`",
          "type": "string"
        },
        "destinationSpace": {
          "description": "Required. The space resource path to which the catalog is shared. Format is `projects/$project/locations/$location/spaces/$space`",
          "type": "string"
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The share creation timestamp."
        },
        "state": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The state of the share is unknown.",
            "The share is in sync with the shared template catalog.",
            "The share is out of sync with the shared template catalog."
          ],
          "description": "Output only. The state of the share.",
          "enum": [
            "STATE_UNSPECIFIED",
            "IN_SYNC",
            "OUT_OF_SYNC"
          ]
        }
      },
      "type": "object",
      "id": "Share",
      "description": "A catalog share between spaces."
    },
    "ProjectParametersList": {
      "properties": {
        "projectParameters": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. List of project parameters for the application.",
          "items": {
            "$ref": "ProjectParameters"
          }
        }
      },
      "type": "object",
      "id": "ProjectParametersList",
      "description": "Provides the list of project parameters needed to deploy an application."
    },
    "SerializedApplicationTemplate": {
      "description": "Serialized application template.",
      "id": "SerializedApplicationTemplate",
      "type": "object",
      "properties": {
        "rootOutputVariables": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Output only. Root level output variables of the application template."
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "hasGlobalResource": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the application template is compatible with regional scope."
        },
        "applicationParameters": {
          "description": "Optional. Parameters to apply to all components in the application template.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "description": {
          "description": "Optional. The application template description.",
          "type": "string"
        },
        "components": {
          "type": "array",
          "description": "Optional. The application template components.",
          "items": {
            "$ref": "SerializedComponent"
          }
        },
        "serializedPolicies": {
          "description": "Output only. Policies of the application template.",
          "items": {
            "$ref": "SerializedPolicy"
          },
          "type": "array",
          "readOnly": true
        },
        "rootInputVariables": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Output only. Root level input variables of the application template."
        },
        "uri": {
          "description": "Optional. The application template URI.",
          "type": "string"
        },
        "compositionType": {
          "type": "string",
          "description": "Output only. The composition type of the applicationTemplate: STANDARD OR COMPOSITE.",
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "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."
          ],
          "readOnly": true
        },
        "displayName": {
          "description": "Optional. The application template display name.",
          "type": "string"
        },
        "apphubApplicationParameters": {
          "description": "Optional. The App Hub application parameters.",
          "$ref": "AppHubApplicationParameters"
        },
        "iacFormat": {
          "description": "Optional. The IaC format of the application template.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "type": "string"
        }
      }
    },
    "ConnectionParameters": {
      "id": "ConnectionParameters",
      "description": "Connection level parameters associated with each component within an application.",
      "properties": {
        "parameters": {
          "description": "Optional. A list of parameters associated with the connection.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "connection": {
          "description": "Required. The name of the connection parameter.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DeveloperConnectExportConfig": {
      "id": "DeveloperConnectExportConfig",
      "description": "Through Developer Connect, defines a location where content such as Infrastructure as Code (IaC) is stored.",
      "properties": {
        "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"
        },
        "dir": {
          "description": "Required. Directory, relative to the source repo, where content such as Infrastructure as Code (IaC) will be stored. This must be a relative path.To specify the root directory, use '/'. If the path or any subdirectories do not exist, they will be created.",
          "type": "string"
        },
        "commitSha": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The SHA of the Git commit that contains the exported content such as Infrastructure as Code (IaC)."
        },
        "developerConnectRepoUri": {
          "description": "Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListComponentsResponse": {
      "properties": {
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        },
        "components": {
          "type": "array",
          "description": "The list of components.",
          "items": {
            "$ref": "Component"
          }
        }
      },
      "type": "object",
      "id": "ListComponentsResponse",
      "description": "Message for response to listing components."
    },
    "DisplayVariable": {
      "type": "object",
      "properties": {
        "validation": {
          "description": "Optional. Text describing the validation rules for the property. Typically shown after an invalid input. Optional. UTF-8 text. No markup. At most 128 characters.",
          "type": "string"
        },
        "name": {
          "description": "Required. The variable name from the corresponding standard Template file.",
          "type": "string"
        },
        "title": {
          "description": "Required. Visible title for the variable on the UI.",
          "type": "string"
        },
        "regexValidation": {
          "description": "Optional. Regex based validation rules for the variable.",
          "type": "string"
        },
        "enumValueLabels": {
          "items": {
            "$ref": "ValueLabelInput"
          },
          "description": "Optional. Labels for enum values. Values must be UTF-8 text with no markup, and at most 64 characters.",
          "type": "array"
        },
        "min": {
          "type": "number",
          "format": "float",
          "description": "Optional. Minimum value for numeric types."
        },
        "level": {
          "description": "Optional. Indicates the \"advanced\" level of the input property. Level 0 (default) will always be shown. Level 1 corresponds to one expansion (user clicks \"show advanced options\" or \"more options\"). Higher levels correspond to further expansions, or they may be collapsed to level 1 by the UI implementation. Optional.",
          "type": "integer",
          "format": "int32"
        },
        "properties": {
          "type": "object",
          "description": "Optional. properties is a map defining all the fields of the input variable.",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          }
        },
        "alternateDefaults": {
          "items": {
            "$ref": "AlternateDefaultInput"
          },
          "description": "Optional. Alternate defaults for the input.",
          "type": "array"
        },
        "max": {
          "type": "number",
          "format": "float",
          "description": "Optional. Maximum value for numeric types."
        },
        "subtext": {
          "description": "Optional. Property subtext, displayed below the title.",
          "type": "string"
        }
      },
      "description": "Additional display specific Template pertaining to a particular input variable.",
      "id": "DisplayVariable"
    },
    "CodePosition": {
      "properties": {
        "column": {
          "description": "Output only. One-based column count of the relevant position.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "line": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. One-based line count of the relevant position."
        },
        "byteOffset": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. Byte offset in the content."
        }
      },
      "type": "object",
      "id": "CodePosition",
      "description": "CodePosition represents a code location."
    },
    "SkippedDomain": {
      "type": "object",
      "properties": {
        "skipReason": {
          "type": "string",
          "enumDescriptions": [
            "No reason specified.",
            "Domain is unavailable.",
            "Domain assessment failed.",
            "Domain assessment timed out."
          ],
          "description": "Output only. Reason for skipping the domain from assessment.",
          "enum": [
            "REASON_UNSPECIFIED",
            "UNAVAILABLE",
            "FAILURE",
            "TIMEOUT"
          ],
          "readOnly": true
        },
        "domain": {
          "readOnly": true,
          "description": "Output only. Details of the domain skipped.",
          "$ref": "Domain"
        }
      },
      "description": "Domains skipped during the best practice assessment.",
      "id": "SkippedDomain"
    },
    "CodeRange": {
      "description": "CodeRange represents a portion of code.",
      "id": "CodeRange",
      "type": "object",
      "properties": {
        "end": {
          "readOnly": true,
          "description": "Output only. End position.",
          "$ref": "CodePosition"
        },
        "start": {
          "readOnly": true,
          "description": "Output only. Start position.",
          "$ref": "CodePosition"
        }
      }
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "properties": {
        "statusMessage": {
          "description": "Output only. Human readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "target": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The server defined resource path for the target of the operation."
        },
        "previewMetadata": {
          "readOnly": true,
          "description": "Output only. The application preview metadata this operation is associated with.",
          "$ref": "PreviewOperationMetadata"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "type": "string",
          "readOnly": true
        },
        "requestedCancellation": {
          "type": "boolean",
          "readOnly": true,
          "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`."
        },
        "applicationMetadata": {
          "description": "Output only. The application delete metadata this operation is associated with.",
          "$ref": "ApplicationOperationMetadata",
          "readOnly": true
        },
        "deploymentGroupMetadata": {
          "description": "Output only. The Provision Deployment Group Metadata this operation is associated with.",
          "$ref": "ProvisionDeploymentGroupOperationMetadata",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The time the operation was created."
        },
        "generateAssessmentReportMetadata": {
          "description": "Output only. The Generate Assessment Report Metadata this operation is associated with.",
          "$ref": "GenerateAssessmentReportOperationMetadata",
          "readOnly": true
        },
        "deploymentMetadata": {
          "readOnly": true,
          "description": "Output only. The application deployment metadata this operation is associated with.",
          "$ref": "DeploymentOperationMetadata"
        },
        "verb": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Name of the verb executed by the operation."
        }
      },
      "type": "object"
    },
    "AppHubApplicationParameters": {
      "description": "App Hub application parameters.",
      "id": "AppHubApplicationParameters",
      "type": "object",
      "properties": {
        "location": {
          "description": "Optional. The App Hub application location. Only used for applications with REGIONAL scope.",
          "type": "string"
        },
        "hostProjectId": {
          "description": "Optional. The host project ID where the App Hub application is created.",
          "type": "string"
        },
        "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"
        }
      }
    },
    "GitReference": {
      "properties": {
        "refTag": {
          "description": "Optional. The reference tag from which content should be read. For example: \"v1.2.3\"",
          "type": "string"
        },
        "branch": {
          "description": "Optional. The name of the branch from which content should be read. For example: \"main\"",
          "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",
      "description": "The Git reference. Can be a commit SHA, branch name, or tag name."
    },
    "MetadataInputSpec": {
      "id": "MetadataInputSpec",
      "description": "Specifications for the input",
      "properties": {
        "interfaces": {
          "description": "Optional. TemplateSchemas provides the input variables lists and connection information.",
          "$ref": "TemplateSchema"
        },
        "requirements": {
          "description": "Required. TemplateRequirements defines the roles required and the provider versions.",
          "$ref": "TemplateRequirements"
        },
        "ui": {
          "description": "Optional. TemplateUi defines the UI related information for the Template.",
          "$ref": "TemplateUi"
        },
        "info": {
          "description": "Optional. TemplateInfo provides the actuation tool information.",
          "$ref": "TemplateInfo"
        }
      },
      "type": "object"
    },
    "TemplateUiInput": {
      "id": "TemplateUiInput",
      "description": "TemplateUiInput defines the list of variables and their sections on the deployment page.",
      "properties": {
        "variables": {
          "description": "Required. variables is a map defining all inputs on the UI.",
          "additionalProperties": {
            "$ref": "DisplayVariable"
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "SCCMetadata": {
      "type": "object",
      "properties": {
        "findingType": {
          "description": "Optional. The SCC finding type.",
          "type": "string"
        },
        "findingClass": {
          "description": "Optional. The SCC finding class. Also known as category.",
          "type": "string"
        }
      },
      "description": "SCC metadata for the assessment finding.",
      "id": "SCCMetadata"
    },
    "InferredMetadata": {
      "properties": {
        "createTime": {
          "description": "Output only. Inferred metadata creation timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "description": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Inferred description."
        },
        "templateMetadata": {
          "readOnly": true,
          "description": "Output only. Inferred template metadata related to Terraform input and output.",
          "$ref": "TFBlueprintMetadata"
        },
        "updateTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Inferred metadata update timestamp."
        }
      },
      "type": "object",
      "id": "InferredMetadata",
      "description": "Inferred metadata."
    },
    "RootModuleDependency": {
      "properties": {
        "rootModuleId": {
          "description": "Identifier of the root module.",
          "type": "string"
        },
        "parameters": {
          "description": "Parameters associated with this dependency.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "RootModuleDependency",
      "description": "Root module dependency."
    },
    "TerraformConfig": {
      "properties": {
        "tfModuleConfig": {
          "description": "Optional. Configuration on how terraform module should be handled during export.",
          "$ref": "TerraformModuleConfig"
        }
      },
      "type": "object",
      "id": "TerraformConfig",
      "description": "Configuration for exporting a resource as Terraform IAC."
    },
    "DeploymentError": {
      "id": "DeploymentError",
      "description": "The error associated with the deployment.",
      "properties": {
        "tfErrors": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. The error message associated with the deployment.",
          "items": {
            "$ref": "TerraformError"
          }
        },
        "deploymentFailureResolutionInfo": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DeploymentFailureResolutionInfo"
          },
          "description": "Output only. The call to actions associated with the deployment issue."
        },
        "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."
          ],
          "description": "Output only. The error type based on the deployment error code.",
          "enum": [
            "ERROR_TYPE_UNSPECIFIED",
            "PERMISSION",
            "QUOTA",
            "ALREADY_EXISTS",
            "RESOURCE_UNAVAILABLE",
            "BILLING",
            "GENERIC",
            "TERRAFORM",
            "BAD_INPUT",
            "PLATFORM",
            "API_ENABLEMENT",
            "BAD_REQUEST"
          ],
          "type": "string",
          "readOnly": true
        },
        "code": {
          "readOnly": true,
          "description": "Output only. The deployment error code. Based on Infrastructure Manager error codes.",
          "enum": [
            "ERROR_CODE_UNSPECIFIED",
            "REVISION_FAILED",
            "CLOUD_BUILD_PERMISSION_DENIED",
            "DELETE_BUILD_API_FAILED",
            "DELETE_BUILD_RUN_FAILED",
            "BUCKET_CREATION_PERMISSION_DENIED",
            "BUCKET_CREATION_FAILED",
            "EXTERNAL_VALUE_SOURCE_IMPORT_FAILED"
          ],
          "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."
          ],
          "type": "string"
        },
        "errorMessage": {
          "type": "string",
          "readOnly": true,
          "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."
        },
        "detail": {
          "description": "Output only. Human readable string that summarizes the deployment error issue.",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "ConnectionSpec": {
      "type": "object",
      "properties": {
        "outputExpr": {
          "description": "Required. Output expression identifying output being connected to variable.",
          "type": "string"
        },
        "inputPath": {
          "description": "Optional. Optional dot separated attribuite notation to connect to a specific object field of the input variable.",
          "type": "string"
        }
      },
      "description": "Defines the specifications of a connection.",
      "id": "ConnectionSpec"
    },
    "ApplicationTemplate": {
      "description": "Application template resource.",
      "id": "ApplicationTemplate",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. Application template display name.",
          "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."
          ],
          "description": "Optional. Immutable. The composition type of the applicationTemplate: STANDARD OR COMPOSITE. This is a create time only param.",
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "type": "string"
        },
        "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.",
          "type": "string",
          "readOnly": true
        },
        "iacFormat": {
          "type": "string",
          "description": "Output only. The IaC format of the application template.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is Helm."
          ],
          "readOnly": true
        },
        "serializedApplicationTemplate": {
          "description": "Output only. The serialized application template.",
          "$ref": "SerializedApplicationTemplate",
          "readOnly": true
        },
        "createTime": {
          "description": "Output only. Application template creation timestamp.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "description": {
          "description": "Optional. Application template description.",
          "type": "string"
        },
        "applicationParameters": {
          "description": "Optional. Parameters to apply to all components in an application. You can specify projectID and region.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "rootInputVariables": {
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Optional. Root level input variables of the application template.",
          "type": "array"
        },
        "rootOutputVariables": {
          "items": {
            "$ref": "ComponentVariable"
          },
          "description": "Optional. Root level output variables of the application template.",
          "type": "array"
        },
        "saasRuntimeContext": {
          "description": "Optional. SaaS runtime context for the application template.",
          "$ref": "SaaSRuntimeContext"
        },
        "name": {
          "description": "Identifier. Application template name.",
          "type": "string"
        },
        "latestRevision": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The latest application template revision."
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. Application template update timestamp."
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate was last successfully exported.",
          "$ref": "ArtifactLocation",
          "readOnly": true
        }
      }
    },
    "GenerateApplicationTemplateRevisionIaCRequest": {
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        },
        "iacFormat": {
          "type": "string",
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ],
          "description": "Optional. The IaC format to generate.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ]
        }
      },
      "description": "Request message for GenerateApplicationTemplateRevisionIaC method.",
      "id": "GenerateApplicationTemplateRevisionIaCRequest"
    },
    "ImportApplicationIaCRequest": {
      "type": "object",
      "properties": {
        "allowPartialImport": {
          "description": "Optional. If set to true, partially imports the valid edits in the IaC and ignores the invalid changes. Defaults to false, which means any edits which can't be imported must result in an error.",
          "type": "boolean"
        },
        "iacModule": {
          "description": "Optional. The IaC module to import.",
          "$ref": "IaCModule"
        },
        "validateIac": {
          "description": "Optional. If set to true, the IaC is validated against the golden terraform without importing. Defaults to false.",
          "type": "boolean"
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI of the terraform code.",
          "type": "string"
        }
      },
      "description": "Request message for ImportApplicationIaC method.",
      "id": "ImportApplicationIaCRequest"
    },
    "ExportApplicationTemplateRevisionIaCRequest": {
      "description": "Request message for ExportApplicationTemplateRevisionIaC method.",
      "id": "ExportApplicationTemplateRevisionIaCRequest",
      "type": "object",
      "properties": {
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository. Default is Google Cloud Storage.",
          "$ref": "ArtifactLocation"
        },
        "exportIacConfig": {
          "description": "Optional. Configuration for exporting IaC.",
          "$ref": "ExportIaCConfig"
        }
      }
    },
    "ListLocationsResponse": {
      "type": "object",
      "properties": {
        "locations": {
          "items": {
            "$ref": "Location"
          },
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "description": "The response message for Locations.ListLocations.",
      "id": "ListLocationsResponse"
    },
    "AdcMetadata": {
      "type": "object",
      "properties": {
        "spaceUri": {
          "description": "Output only. Space URI",
          "type": "string",
          "readOnly": true
        },
        "applicationUri": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Application URI"
        },
        "applicationTemplateUri": {
          "description": "Output only. ApplicationTemplate URI",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Application Design Center specific information and metadata.",
      "id": "AdcMetadata"
    },
    "ExportIaCConfig": {
      "id": "ExportIaCConfig",
      "description": "Configuration for exporting a resource as IAC.",
      "properties": {
        "tfConfig": {
          "description": "Optional. Configuration on how to handle terraform IaC export.",
          "$ref": "TerraformConfig"
        },
        "iacFormat": {
          "type": "string",
          "description": "Optional. IaC format of the export. Default is [IACFormat.TERRAFORM].",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ]
        }
      },
      "type": "object"
    },
    "SharedTemplate": {
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The shared template creation timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "templateCategory": {
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false
          ],
          "type": "string",
          "description": "Required. The category of the template.",
          "enum": [
            "TEMPLATE_CATEGORY_UNSPECIFIED",
            "COMPONENT_TEMPLATE",
            "APPLICATION_TEMPLATE",
            "COMPOSITE_SOLUTION_TEMPLATE",
            "INSTANCE_TEMPLATE"
          ],
          "enumDescriptions": [
            "Unspecified category.",
            "Component template.",
            "Application template.",
            "Imported as a single, complex unit without disassembling into components.",
            "Instance template."
          ]
        },
        "updateTime": {
          "description": "Output only. The shared template update timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The shared template name. `projects/$project/locations/$location/spaces/$space/sharedTemplates/$sharedTemplate`",
          "type": "string"
        },
        "originTemplate": {
          "description": "Output only. The origin template of the shared template.",
          "type": "string",
          "readOnly": true
        },
        "description": {
          "description": "Optional. The shared template description.",
          "type": "string"
        },
        "latestRevisionId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Latest revision of the shared template."
        },
        "displayName": {
          "description": "Optional. The shared template display name.",
          "type": "string"
        },
        "type": {
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true,
            true,
            true,
            true,
            false,
            false,
            false
          ],
          "type": "string",
          "enumDescriptions": [
            "Default.",
            "A service template is an App Hub service.",
            "A workload template is an App Hub workload.",
            "An asset template can be used to provision resources that are not services or workloads.",
            "An application template is a composition of workload/service/asset templates.",
            "A Jumpstart Solution template.",
            "A service data source template.",
            "A helm chart based template.",
            "A standard application template.",
            "A composite application template.",
            "A helm chart based template."
          ],
          "description": "Optional. The Application Design Center assembly template type.",
          "enum": [
            "TEMPLATE_TYPE_UNSPECIFIED",
            "SERVICE",
            "WORKLOAD",
            "ASSET",
            "APPLICATION",
            "JSS_SOLUTION",
            "SERVICE_DATA_SOURCE",
            "HELM_APPLICATION",
            "STANDARD_APPLICATION_TEMPLATE",
            "COMPOSITE_APPLICATION_TEMPLATE",
            "HELM_CHART"
          ]
        }
      },
      "description": "A read-only template that is shared with a space.",
      "id": "SharedTemplate"
    },
    "TestIamPermissionsRequest": {
      "properties": {
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions)."
        }
      },
      "type": "object",
      "id": "TestIamPermissionsRequest",
      "description": "Request message for `TestIamPermissions` method."
    },
    "GenerateAssessmentReportRequest": {
      "properties": {
        "terraformPlan": {
          "type": "string",
          "format": "byte",
          "description": "Required. Terraform plan bytes."
        },
        "additionalFrameworks": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Additional Frameworks to run assessment against. If empty, run against default frameworks. Frameworks refers to the policies.",
          "type": "array"
        }
      },
      "type": "object",
      "description": "Deprecated: Use GenerateTerraformPlanAssessmentReportRequest instead. Message for the request to generate a best practice report for a given Terraform plan.",
      "deprecated": true,
      "id": "GenerateAssessmentReportRequest"
    },
    "SerializedComponent": {
      "properties": {
        "uri": {
          "description": "Optional. The component URI.",
          "type": "string"
        },
        "connectionsParameters": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. The connection parameters of the component.",
          "items": {
            "$ref": "ConnectionParameters"
          }
        },
        "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",
          "items": {
            "type": "string"
          },
          "description": "Optional. IAM roles required by the service account to deploy the component."
        },
        "apis": {
          "type": "array",
          "description": "Optional. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "items": {
            "type": "string"
          }
        },
        "parameters": {
          "type": "array",
          "description": "Optional. The component parameters.",
          "items": {
            "$ref": "Parameter"
          }
        },
        "connections": {
          "items": {
            "$ref": "SerializedConnection"
          },
          "description": "Optional. The component connections.",
          "type": "array"
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        },
        "componentParameterSchema": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentParameterSchema"
          },
          "description": "Output only. The component parameter schema, which includes possible parameter values."
        },
        "sharedTemplateRevisionUri": {
          "description": "Optional. The shared template used to generate the component.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "SerializedComponent",
      "description": "Serialized component."
    },
    "TerraformUiOutputDisplay": {
      "description": "Terraform blueprint UI output display.",
      "id": "TerraformUiOutputDisplay",
      "type": "object",
      "properties": {
        "visibility": {
          "type": "string",
          "description": "Output only. Visibility of the output.",
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ],
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ],
          "readOnly": true
        }
      }
    },
    "TerraformInput": {
      "properties": {
        "terraformInputVariable": {
          "description": "Output only. Input variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The Terraform input data type."
        },
        "connections": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "TerraformInputConnections"
          },
          "description": "Output only. Terraform input connections."
        },
        "isRequired": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Indicates if input is required."
        },
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Terraform variable description."
        },
        "defaultValue": {
          "type": "any",
          "readOnly": true,
          "description": "Output only. The default value of the Terraform input variable."
        }
      },
      "type": "object",
      "id": "TerraformInput",
      "description": "Terraform inputs."
    },
    "OciRepo": {
      "properties": {
        "moduleSourceUri": {
          "description": "Optional. Field for containing the references to the source from which the OCI repo was created.",
          "type": "string"
        },
        "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"
        }
      },
      "type": "object",
      "id": "OciRepo",
      "description": "Open Container Initiative (OCI) repo."
    },
    "ListSharesResponse": {
      "type": "object",
      "properties": {
        "shares": {
          "items": {
            "$ref": "Share"
          },
          "description": "The list of shares.",
          "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 shares of a catalog.",
      "id": "ListSharesResponse"
    },
    "ListSharedTemplatesResponse": {
      "type": "object",
      "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"
    },
    "TemplateVariable": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Required. Input variable name present in Terraform.",
          "type": "string"
        },
        "connections": {
          "items": {
            "$ref": "TemplateConnections"
          },
          "description": "Required. Terraform input connections.",
          "type": "array"
        }
      },
      "description": "TemplateTerraform inputs.",
      "id": "TemplateVariable"
    },
    "ApplicationOperationMetadata": {
      "properties": {
        "step": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The current step of the delete operation. Associated with Infrastructure Manager and App Hub."
        },
        "build": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Cloud Build instance UUID associated with the delete operation."
        }
      },
      "type": "object",
      "id": "ApplicationOperationMetadata",
      "description": "Ephemeral metadata depicting the state of the delete operation."
    },
    "RootModulesMetadata": {
      "id": "RootModulesMetadata",
      "description": "Root modules metadata.",
      "properties": {
        "rootModules": {
          "type": "array",
          "description": "List of terraform root modules.",
          "items": {
            "$ref": "RootModule"
          }
        }
      },
      "type": "object"
    },
    "Location": {
      "description": "A resource that represents a Google Cloud location.",
      "id": "Location",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "labels": {
          "type": "object",
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "ImportApplicationIaCResponse": {
      "id": "ImportApplicationIaCResponse",
      "description": "Response message for ImportApplicationIaC method.",
      "properties": {
        "state": {
          "description": "The state of the import.",
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "enumDescriptions": [
            "Default.",
            "The import was successful.",
            "The import failed."
          ],
          "type": "string"
        },
        "application": {
          "description": "Application template corresponding to the imported IaC.",
          "$ref": "Application"
        },
        "errors": {
          "type": "array",
          "description": "Errors encountered during import.",
          "items": {
            "$ref": "ImportIaCError"
          }
        }
      },
      "type": "object"
    },
    "Parameter": {
      "properties": {
        "value": {
          "description": "Optional. The value of the parameter.",
          "type": "any"
        },
        "key": {
          "description": "Required. The key of the parameter.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "Parameter",
      "description": "Parameter resource."
    },
    "ApplicationOutputParameters": {
      "type": "object",
      "properties": {
        "helmApplicationOutputParameters": {
          "readOnly": true,
          "description": "Output only. Helm application output parameters.",
          "$ref": "HelmApplicationOutputParameters"
        }
      },
      "description": "The application output parameters of the deployment.",
      "id": "ApplicationOutputParameters"
    },
    "Status": {
      "type": "object",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
        }
      },
      "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).",
      "id": "Status"
    },
    "HelmApplicationOutputParameters": {
      "description": "The helm application output parameters of the deployment.",
      "id": "HelmApplicationOutputParameters",
      "type": "object",
      "properties": {
        "parameters": {
          "description": "Output only. The output parameters of the helm application.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array",
          "readOnly": true
        }
      }
    },
    "AuditLogConfig": {
      "type": "object",
      "properties": {
        "logType": {
          "enumDescriptions": [
            "Default case. Should never be this.",
            "Admin reads. Example: CloudIAM getIamPolicy",
            "Data writes. Example: CloudSQL Users create",
            "Data reads. Example: CloudSQL Users list"
          ],
          "description": "The log type that this config enables.",
          "enum": [
            "LOG_TYPE_UNSPECIFIED",
            "ADMIN_READ",
            "DATA_WRITE",
            "DATA_READ"
          ],
          "type": "string"
        },
        "exemptedMembers": {
          "items": {
            "type": "string"
          },
          "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
          "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.",
      "id": "AuditLogConfig"
    },
    "Operation": {
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "properties": {
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "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"
        },
        "response": {
          "type": "object",
          "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`.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "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",
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      },
      "type": "object"
    },
    "TemplateUiOutputDisplayVariable": {
      "id": "TemplateUiOutputDisplayVariable",
      "description": "Additional display specific Template pertaining to a particular output variable.",
      "properties": {
        "visibility": {
          "type": "string",
          "description": "Required. Visibility of the output.",
          "enum": [
            "DISPLAY_VARIABLE_VISIBILITY_UNSPECIFIED",
            "DISPLAY_VARIABLE_VISIBILITY_ROOT"
          ],
          "enumDescriptions": [
            "Default",
            "Expose output as root module output."
          ]
        }
      },
      "type": "object"
    },
    "ListApplicationTemplateRevisionsResponse": {
      "properties": {
        "applicationTemplateRevisions": {
          "type": "array",
          "description": "The list of application template revisions.",
          "items": {
            "$ref": "ApplicationTemplateRevision"
          }
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ListApplicationTemplateRevisionsResponse",
      "description": "Message for response to listing application template revisions."
    },
    "DeploymentSource": {
      "id": "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"
    },
    "DeploymentTarget": {
      "id": "DeploymentTarget",
      "description": "The deployment target of the application.",
      "properties": {
        "gkeDeploymentTarget": {
          "description": "Optional. The GKE deployment target.",
          "$ref": "GKEDeploymentTarget"
        }
      },
      "type": "object"
    },
    "DeveloperConnectConfig": {
      "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"
        }
      },
      "type": "object"
    },
    "AlternateDefaultInput": {
      "description": "Alternate default input for a UI.",
      "id": "AlternateDefaultInput",
      "type": "object",
      "properties": {
        "type": {
          "description": "Optional. Type of alternate default.",
          "enum": [
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_UNSPECIFIED",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_SECURITY",
            "DISPLAY_VARIABLE_ALTERNATE_TYPE_DC"
          ],
          "enumDescriptions": [
            "Default",
            "A more secure default.",
            "A default specifically needed for Application Design center."
          ],
          "type": "string"
        },
        "value": {
          "description": "Optional. Value of the alternate default.",
          "type": "any"
        }
      }
    },
    "ProjectParameters": {
      "type": "object",
      "properties": {
        "projectId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The project ID of the project."
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Output only. IAM roles required by the service account to deploy the application in given project.",
          "readOnly": true,
          "type": "array"
        },
        "apis": {
          "description": "Output only. APIs required to be enabled to deploy the application, in the form of \"*.googleapis.com\".",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "description": "The ProjectParameters provides the parameters needed to deploy the application in the given project.",
      "id": "ProjectParameters"
    },
    "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.",
      "id": "ValueLabelInput"
    },
    "RolesAndApisConfig": {
      "description": "Represents configurations required within a specific project to deploy the application.",
      "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"
          }
        },
        "apis": {
          "type": "array",
          "items": {
            "$ref": "ApiInfo"
          },
          "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."
        },
        "projectId": {
          "description": "Required. The project ID to which these configurations apply. Format: {project_id}",
          "type": "string"
        }
      }
    },
    "Framework": {
      "properties": {
        "majorRevisionId": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. The major revision id of the framework."
        },
        "deploymentStatus": {
          "type": "string",
          "enumDescriptions": [
            "Deployment status unspecified.",
            "Framework is deployed.",
            "Framework is undeployed."
          ],
          "description": "Optional. The deployment status of the framework.",
          "enum": [
            "DEPLOYMENT_STATUS_UNSPECIFIED",
            "DEPLOYED",
            "UNDEPLOYED"
          ]
        },
        "displayName": {
          "description": "Optional. The framework display name.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The framework description.",
          "type": "string"
        },
        "active": {
          "description": "Optional. Whether the framework is active.",
          "type": "boolean"
        },
        "cloudControlDetails": {
          "items": {
            "$ref": "CloudControl"
          },
          "description": "Optional. The cloud controls that are associated with the framework.",
          "type": "array"
        },
        "url": {
          "description": "Optional. The URL to a framework.",
          "type": "string"
        },
        "name": {
          "description": "Required. The framework name.",
          "type": "string"
        },
        "parentDomain": {
          "description": "Required. The domain to which this framework belongs.",
          "$ref": "Domain"
        }
      },
      "type": "object",
      "id": "Framework",
      "description": "Framework for assessment."
    },
    "RootOutputVariable": {
      "type": "object",
      "properties": {
        "variable": {
          "description": "Name of the output variable.",
          "type": "string"
        }
      },
      "description": "Output variable of a root module.",
      "id": "RootOutputVariable"
    },
    "DeploymentFailureResolutionInfo": {
      "id": "DeploymentFailureResolutionInfo",
      "description": "The call to action associated with the deployment issue.",
      "properties": {
        "resolutionMessage": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Elaborative error resolution message."
        },
        "resolutionLink": {
          "description": "Output only. Link for the call to action.",
          "readOnly": true,
          "type": "string"
        },
        "resolutionLinkText": {
          "description": "Output only. Call to action link text.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListPoliciesResponse": {
      "description": "Message for response to listing policies.",
      "id": "ListPoliciesResponse",
      "type": "object",
      "properties": {
        "policies": {
          "type": "array",
          "description": "A list of policies.",
          "items": {
            "$ref": "DesignCenterPolicy"
          }
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      }
    },
    "TerraformOutput": {
      "properties": {
        "type": {
          "readOnly": true,
          "type": "any",
          "description": "Output only. Type of Terraform output."
        },
        "description": {
          "description": "Output only. Description of the Terraform varaiable.",
          "type": "string",
          "readOnly": true
        },
        "terraformOutputVariable": {
          "description": "Output only. Output variable name present in Terraform.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "TerraformOutput",
      "description": "Terraform outputs."
    },
    "ComponentParameters": {
      "description": "Information about the component level parameters for an application.",
      "id": "ComponentParameters",
      "type": "object",
      "properties": {
        "effectiveApplicationInfo": {
          "description": "Output only. The effective application associated with the component. This is the server set application field.",
          "$ref": "ComponentApplicationInfo",
          "readOnly": true
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. A list of parameters associated with the component."
        },
        "componentParameterSchema": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. The component parameter schema, which includes possible parameter values.",
          "items": {
            "$ref": "ComponentParameterSchema"
          }
        },
        "component": {
          "description": "Required. The name of the component parameter.",
          "type": "string"
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        },
        "state": {
          "description": "Output only. Deployment state of the component.",
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED"
          ],
          "enumDescriptions": [
            "Unspecified component deployment state.",
            "Component is in draft.",
            "New deployment is in progress.",
            "Update is in progress.",
            "Deletion is in progress.",
            "Component deployment is completed.",
            "Component deployment is deleted.",
            "Component deployment is failed."
          ],
          "type": "string",
          "readOnly": true
        },
        "connectionsParameters": {
          "items": {
            "$ref": "ConnectionParameters"
          },
          "description": "Output only. A list of connections associated with the component.",
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "TerraformError": {
      "id": "TerraformError",
      "description": "Errors encountered during actuation using Terraform",
      "properties": {
        "httpResponseCode": {
          "description": "HTTP response code returned from Google Cloud Platform APIs when Terraform fails to provision the resource. If unset or 0, no HTTP response code was returned by Terraform.",
          "type": "integer",
          "format": "int32"
        },
        "error": {
          "readOnly": true,
          "description": "Output only. Original error response from underlying Google API, if available.",
          "$ref": "Status"
        },
        "errorDescription": {
          "description": "A human-readable error description.",
          "type": "string"
        },
        "resourceAddress": {
          "description": "Address of the resource associated with the error, e.g. `google_compute_network.vpc_network`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ScoreCard": {
      "id": "ScoreCard",
      "description": "Score card associated with the report.",
      "properties": {
        "averageScore": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Average score for similar reports."
        },
        "reportScore": {
          "description": "Required. Calculated score of the report.",
          "type": "integer",
          "format": "int32"
        },
        "maxScore": {
          "type": "integer",
          "format": "int32",
          "description": "Required. Maximum score of the report. For example, for a score of 75/100, report_score is 75 and max_score is 100."
        },
        "minScoreRequired": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Minimum score required to pass assessment."
        }
      },
      "type": "object"
    },
    "ValueLabel": {
      "properties": {
        "value": {
          "description": "Output only. Value of the enum.",
          "type": "string",
          "readOnly": true
        },
        "label": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Label of the enum."
        }
      },
      "type": "object",
      "id": "ValueLabel",
      "description": "Value label for a UI input."
    },
    "Resource": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. Identifier. The name of the resource.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The type of the resource."
        },
        "state": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The default value. This value is used if the state is omitted.",
            "Resource has been planned for reconcile.",
            "Resource is actively reconciling into the intended state.",
            "Resource has reconciled to intended state.",
            "Resource failed to reconcile.",
            "Drift is detected in the resourece state.",
            "Resource is intended state."
          ],
          "description": "Output only. Current state of the resource.",
          "enum": [
            "STATE_UNSPECIFIED",
            "PLANNED",
            "IN_PROGRESS",
            "RECONCILED",
            "FAILED",
            "DRIFTED",
            "INTENDED"
          ]
        }
      },
      "description": "Status of the Resourcess in the deployment.",
      "id": "Resource"
    },
    "ProviderVersion": {
      "id": "ProviderVersion",
      "description": "ProviderVersion defines the required version for a provider.",
      "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"
        }
      },
      "type": "object"
    },
    "ListCatalogsResponse": {
      "id": "ListCatalogsResponse",
      "description": "Results returned from catalogs.list.",
      "properties": {
        "catalogs": {
          "type": "array",
          "description": "A list of catalogs",
          "items": {
            "$ref": "Catalog"
          }
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ArtifactLocation": {
      "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"
        }
      },
      "type": "object",
      "id": "ArtifactLocation",
      "description": "Defines the location for storing an artifact, such as generated IaC."
    },
    "CommitApplicationTemplateRequest": {
      "id": "CommitApplicationTemplateRequest",
      "description": "Request message for CommitApplicationTemplate method.",
      "properties": {},
      "type": "object"
    },
    "MetadataInput": {
      "id": "MetadataInput",
      "description": "Metadata for the input",
      "properties": {
        "spec": {
          "description": "Required. spec containing the metadata",
          "$ref": "MetadataInputSpec"
        }
      },
      "type": "object"
    },
    "TemplateRoles": {
      "description": "Template Roles provide the level and roles",
      "id": "TemplateRoles",
      "type": "object",
      "properties": {
        "level": {
          "description": "Required. Level of the role.",
          "type": "string"
        },
        "roles": {
          "items": {
            "type": "string"
          },
          "description": "Required. List of roles.",
          "type": "array"
        }
      }
    },
    "LogicalProduct": {
      "properties": {
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the logical product. Format: logicalProducts/{logical_product}"
        },
        "title": {
          "description": "Output only. The display name of the logical product.",
          "readOnly": true,
          "type": "string"
        },
        "shortDescription": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A short description of the logical product."
        }
      },
      "type": "object",
      "id": "LogicalProduct",
      "description": "Represents a Product Main logical product."
    },
    "ResourceType": {
      "id": "ResourceType",
      "description": "Represents the type of a resource within a component template.",
      "properties": {
        "tfResource": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Terraform resource type. For example: \"google_compute_instance\"."
        },
        "caisResource": {
          "description": "Output only. The CAIS resource type.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenerateApplicationAssessmentReportRequest": {
      "description": "Message for generating an application assessment report.",
      "id": "GenerateApplicationAssessmentReportRequest",
      "type": "object",
      "properties": {}
    },
    "DomainAssessmentReport": {
      "id": "DomainAssessmentReport",
      "description": "The assessment report for each domain.",
      "properties": {
        "domainId": {
          "description": "Output only. The ID of the domain.",
          "type": "string",
          "readOnly": true
        },
        "reportName": {
          "description": "Optional. The report name as per Application Design Center.",
          "type": "string"
        },
        "domainRedirectInfo": {
          "description": "Optional. Information on how to redirect to domain.",
          "$ref": "DomainRedirectInfo"
        },
        "status": {
          "type": "string",
          "description": "Optional. Status of assessment report.",
          "enum": [
            "STATUS_UNSPECIFIED",
            "PENDING",
            "COMPLETED",
            "FAILED"
          ],
          "enumDescriptions": [
            "No status specified.",
            "Pending domain assessment.",
            "Complete domain assessment.",
            "Failed domain assessment."
          ]
        },
        "assessedFrameworks": {
          "items": {
            "$ref": "AssessedFramework"
          },
          "description": "Required. List of frameworks assessed and their findings.",
          "type": "array"
        },
        "additionalInfo": {
          "description": "Optional. Additional information about the report.",
          "type": "string"
        },
        "reportScore": {
          "readOnly": true,
          "description": "Output only. Score card associated with the report.",
          "$ref": "ScoreCard"
        },
        "updateTime": {
          "description": "Output only. The time at which the report was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "skippedAssetTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. List of asset types skipped during assessment."
        },
        "createTime": {
          "description": "Output only. The time at which the report was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "adcMetadata": {
          "description": "Output only. Specific information and metadata.",
          "$ref": "AdcMetadata",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "ExportApplicationTemplateIaCRequest": {
      "id": "ExportApplicationTemplateIaCRequest",
      "description": "Request message for ExportApplicationTemplateIaC method.",
      "properties": {
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository. Default is Google Cloud Storage.",
          "$ref": "ArtifactLocation"
        },
        "exportIacConfig": {
          "description": "Optional. Configuration for exporting IaC.",
          "$ref": "ExportIaCConfig"
        }
      },
      "type": "object"
    },
    "DomainRedirectInfo": {
      "id": "DomainRedirectInfo",
      "description": "Information on how to redirect to domain.",
      "properties": {
        "urlText": {
          "description": "Required. Text to display in UI on the redirect URL.",
          "type": "string"
        },
        "openInSameTab": {
          "description": "Optional. Flag to open the URL in new tab. Default: false.",
          "type": "boolean"
        },
        "url": {
          "description": "Required. URL to the domain page.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TemplateUiOutput": {
      "id": "TemplateUiOutput",
      "description": "TemplateUiOutput defines the list of outputs and their visibility on the deployment page.",
      "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"
          }
        }
      },
      "type": "object"
    },
    "ImportIaCError": {
      "properties": {
        "resourceAddress": {
          "description": "Output only. The resource address of the error.",
          "type": "string",
          "readOnly": true
        },
        "file": {
          "description": "Output only. The file where the error has occurred.",
          "type": "string",
          "readOnly": true
        },
        "description": {
          "description": "Output only. The description of the error.",
          "readOnly": true,
          "type": "string"
        },
        "range": {
          "readOnly": true,
          "description": "Output only. The code portion where this error occurs.",
          "$ref": "CodeRange"
        },
        "type": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The type of error.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "INVALID",
            "NOT_SUPPORTED"
          ],
          "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."
          ]
        }
      },
      "type": "object",
      "id": "ImportIaCError",
      "description": "Message representing the error encountered during import. Example: A variable with name \"name\" is expected to be of type string, but is provided as number, inside a module named \"my_module\". { resource_address: \"module.my_module.name\" file: \"gs://my_bucket/main.tf\" range: { start: { line: 2 byte_offset: 1 column: 2 } end: { line: 2 byte_offset: 10 column: 10 } } description: \"Error parsing field: \\\"name\\\". Expected type \\\"string\\\" but got \\\"number\\\".\" type: INVALID }"
    },
    "RoleInfo": {
      "id": "RoleInfo",
      "description": "RoleInfo represents an IAM role along with its origin.",
      "properties": {
        "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.",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        },
        "systemProvided": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. When true, indicates that this role was automatically added by Application Design Center. Roles provided by users will have this field set to false."
        },
        "role": {
          "description": "Required. IAM role name, such as `roles/editor`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListSpacesResponse": {
      "description": "Results returned from projects.locations.spaces.list.",
      "id": "ListSpacesResponse",
      "type": "object",
      "properties": {
        "unreachable": {
          "type": "array",
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "spaces": {
          "items": {
            "$ref": "Space"
          },
          "description": "A list of spaces.",
          "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"
        }
      }
    },
    "TemplateConnections": {
      "properties": {
        "source": {
          "description": "Required. Source of the connection.",
          "$ref": "ConnectionSource"
        },
        "spec": {
          "description": "Required. Connection specifications.",
          "$ref": "ConnectionSpec"
        }
      },
      "type": "object",
      "id": "TemplateConnections",
      "description": "TemplateConnections"
    },
    "GenerateAssessmentReportOperationMetadata": {
      "type": "object",
      "properties": {
        "step": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified step.",
            "Generating Terraform fast plan.",
            "Generating BPBD assessment report.",
            "Succeeded.",
            "Failed."
          ],
          "description": "Output only. The current step of the generate assessment report operation.",
          "enum": [
            "ASSESSMENT_STEP_UNSPECIFIED",
            "FAST_PLAN",
            "ASSESSMENT_REPORT",
            "SUCCEEDED",
            "FAILED"
          ]
        }
      },
      "description": "Ephemeral metadata depicting the state of assessment report generation.",
      "id": "GenerateAssessmentReportOperationMetadata"
    },
    "Space": {
      "properties": {
        "name": {
          "description": "Identifier. The space name.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Description for the space.",
          "type": "string"
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. Space update timestamp"
        },
        "enableGcpSharedTemplates": {
          "description": "Optional. Flag to enable Google opinionated shared templates.",
          "type": "boolean"
        },
        "tags": {
          "type": "object",
          "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"
          }
        },
        "displayName": {
          "description": "Optional. Display name 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.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "Space",
      "description": "Space is a top level resource for managing teams building applications through Application Design Center."
    },
    "ListCatalogTemplatesResponse": {
      "properties": {
        "catalogTemplates": {
          "type": "array",
          "items": {
            "$ref": "CatalogTemplate"
          },
          "description": "The list of catalog templates."
        },
        "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": "ListCatalogTemplatesResponse",
      "description": "Message for response to listing catalog templates."
    },
    "Environment": {
      "description": "Environment of the Application, Service, or Workload",
      "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.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "PRODUCTION",
            "STAGING",
            "TEST",
            "DEVELOPMENT"
          ],
          "enumDescriptions": [
            "Unspecified type.",
            "Production environment.",
            "Staging environment.",
            "Test environment.",
            "Development environment."
          ],
          "type": "string"
        }
      }
    },
    "ComponentVariable": {
      "description": "The details of an input/output variable: the variable and the component Uri. name.",
      "id": "ComponentVariable",
      "type": "object",
      "properties": {
        "componentUri": {
          "description": "Required. Component to which this variable belongs.",
          "type": "string"
        },
        "variable": {
          "description": "Required. Name of the variable.",
          "type": "string"
        }
      }
    },
    "DisplayVariableToggle": {
      "description": "Display variable toggle.",
      "id": "DisplayVariableToggle",
      "type": "object",
      "properties": {
        "variableType": {
          "enumDescriptions": [
            "Default",
            "Boolean",
            "String",
            "Integer"
          ],
          "description": "Output only. The type of the variable used to toggle the display of another variable.",
          "enum": [
            "TOGGLE_VARIABLE_TYPE_UNSPECIFIED",
            "TOGGLE_VARIABLE_TYPE_BOOLEAN",
            "TOGGLE_VARIABLE_TYPE_STRING",
            "TOGGLE_VARIABLE_TYPE_INTEGER"
          ],
          "type": "string",
          "readOnly": true
        },
        "variable": {
          "description": "Output only. The name of the variable used to toggle the display of another variable.",
          "readOnly": true,
          "type": "string"
        },
        "variableValues": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The value of the variable used to toggle the display of another variable."
        }
      }
    },
    "Scope": {
      "id": "Scope",
      "description": "Scope of an application.",
      "properties": {
        "type": {
          "type": "string",
          "description": "Required. Scope Type.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "REGIONAL",
            "GLOBAL"
          ],
          "enumDescriptions": [
            "Unspecified type.",
            "Regional type.",
            "Global type."
          ]
        }
      },
      "type": "object"
    },
    "TerraformInputConnections": {
      "type": "object",
      "properties": {
        "cftTemplateVersion": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Version of the other template that can be connected to."
        },
        "inputPath": {
          "description": "Output only. Input path of the other template that can be connected to.",
          "readOnly": true,
          "type": "string"
        },
        "cftTemplateUri": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. List of other templates that can be connected to."
        },
        "outputVar": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Output variable name present in Terraform."
        }
      },
      "description": "TerraformInputConnections",
      "id": "TerraformInputConnections"
    },
    "RootModule": {
      "type": "object",
      "properties": {
        "components": {
          "items": {
            "type": "string"
          },
          "description": "List of Application Design Center component names associated with this root module. For standard app template type components, this list will have a single element. For service / workload / asset components, this list will contain all such component names.",
          "type": "array"
        },
        "outputVariables": {
          "description": "List of output variables of this root module.",
          "items": {
            "$ref": "RootOutputVariable"
          },
          "type": "array"
        },
        "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": {
          "type": "array",
          "description": "Dependencies of this root module. The dependency graph of root modules must be acyclic.",
          "items": {
            "$ref": "RootModuleDependency"
          }
        },
        "inputVariables": {
          "type": "array",
          "description": "List of input variables of this root module.",
          "items": {
            "$ref": "RootInputVariable"
          }
        }
      },
      "description": "Metadata for a root module.",
      "id": "RootModule"
    },
    "Component": {
      "description": "Component resource.",
      "id": "Component",
      "type": "object",
      "properties": {
        "parameters": {
          "items": {
            "$ref": "Parameter"
          },
          "description": "Optional. The component parameters.",
          "type": "array"
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The component creation timestamp."
        },
        "updateTime": {
          "description": "Output only. The component update timestamp.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The component name.",
          "type": "string"
        },
        "roles": {
          "description": "Output only. IAM roles required by the service account to deploy the component.",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        },
        "apis": {
          "items": {
            "type": "string"
          },
          "description": "Output only. APIs required to be enabled to deploy the component, in the form of \"*.googleapis.com\".",
          "readOnly": true,
          "type": "array"
        },
        "connectionsParameters": {
          "items": {
            "$ref": "ConnectionParameters"
          },
          "description": "Output only. The connection parameters of the component.",
          "readOnly": true,
          "type": "array"
        },
        "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"
        },
        "sharedTemplateRevisionUri": {
          "description": "Required. Immutable. The shared template used to generate the component.",
          "type": "string"
        },
        "componentParameterSchema": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ComponentParameterSchema"
          },
          "description": "Output only. The component parameter schema, which includes possible parameter values. values."
        },
        "applicationInfo": {
          "description": "Optional. The application associated with the component.",
          "$ref": "ComponentApplicationInfo"
        },
        "displayName": {
          "description": "Optional. The component display name.",
          "type": "string"
        }
      }
    },
    "GenerateApplicationTemplateRevisionIaCResponse": {
      "id": "GenerateApplicationTemplateRevisionIaCResponse",
      "description": "Response message for GenerateApplicationTemplateRevisionIaC method.",
      "properties": {
        "rootModulesMetadata": {
          "description": "Root modules metadata of the application template revision.",
          "$ref": "RootModulesMetadata"
        },
        "artifactLocation": {
          "description": "The destination where the generated IaC was written.",
          "$ref": "ArtifactLocation"
        }
      },
      "type": "object"
    },
    "CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "id": "CancelOperationRequest",
      "type": "object",
      "properties": {}
    },
    "TerraformUiInputDisplayVariable": {
      "id": "TerraformUiInputDisplayVariable",
      "description": "Terraform blueprint UI input display variable.",
      "properties": {
        "enumValueLabels": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. Labels for enum values. Values must be UTF-8 text with no markup, and at most 64 characters.",
          "items": {
            "$ref": "ValueLabel"
          }
        },
        "validation": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Text describing the validation rules for the property. Typically shown after an invalid input. Optional. UTF-8 text. No markup. At most 128 characters."
        },
        "regexValidation": {
          "description": "Output only. Regex based validation rules for the variable.",
          "readOnly": true,
          "type": "string"
        },
        "title": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Title of the input."
        },
        "max": {
          "description": "Output only. Maximum value for numeric types.",
          "type": "number",
          "format": "float",
          "readOnly": true
        },
        "subtext": {
          "description": "Output only. Property subtext, displayed below the title.",
          "type": "string",
          "readOnly": true
        },
        "min": {
          "description": "Output only. Minimum value for numeric types.",
          "readOnly": true,
          "type": "number",
          "format": "float"
        },
        "level": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. Indicates the \"advanced\" level of the input property. Level 0 (default) will always be shown. Level 1 corresponds to one expansion (user clicks \"show advanced options\" or \"more options\"). Higher levels correspond to further expansions, or they may be collapsed to level 1 by the UI implementation. Optional."
        },
        "alternateDefaults": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. Alternate defaults for the input.",
          "items": {
            "$ref": "AlternateDefault"
          }
        },
        "toggleUsingVariables": {
          "description": "Output only. Variables used to toggle the display of another variable.",
          "items": {
            "$ref": "DisplayVariableToggle"
          },
          "type": "array",
          "readOnly": true
        },
        "displayName": {
          "description": "Output only. Display name of the input.",
          "type": "string",
          "readOnly": true
        },
        "properties": {
          "description": "Output only. A map that defines all fields of the input variable.",
          "additionalProperties": {
            "$ref": "TerraformUiInputDisplayVariable"
          },
          "readOnly": true,
          "type": "object"
        }
      },
      "type": "object"
    },
    "GenerateApplicationTemplateAssessmentReportRequest": {
      "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",
      "description": "Message for generate assessment report application template."
    },
    "GenerateApplicationIaCRequest": {
      "id": "GenerateApplicationIaCRequest",
      "description": "Request message for GenerateApplicationIaC method.",
      "properties": {
        "iacFormat": {
          "type": "string",
          "description": "Optional. The IaC format to generate.",
          "enum": [
            "IAC_FORMAT_UNSPECIFIED",
            "TERRAFORM",
            "HELM"
          ],
          "enumDescriptions": [
            "IaC format is unspecified.",
            "IaC format is Terraform.",
            "IaC format is HELM."
          ]
        },
        "artifactLocation": {
          "description": "Optional. Specifies the destination for the generated IaC, which can be Cloud Storage or a Developer Connect repository.",
          "$ref": "ArtifactLocation"
        },
        "gcsUri": {
          "description": "Optional. The Cloud Storage URI to write the generated IaC to. DEPRECATED: Use the 'artifact_location' field instead.",
          "deprecated": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListApplicationTemplatesResponse": {
      "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": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "applicationTemplates": {
          "items": {
            "$ref": "ApplicationTemplate"
          },
          "description": "The list of application templates.",
          "type": "array"
        }
      },
      "type": "object",
      "id": "ListApplicationTemplatesResponse",
      "description": "Message for response to listing application templates."
    },
    "Binding": {
      "description": "Associates `members`, or principals, with a `role`.",
      "id": "Binding",
      "type": "object",
      "properties": {
        "role": {
          "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).",
          "type": "string"
        },
        "members": {
          "items": {
            "type": "string"
          },
          "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.",
          "type": "array"
        },
        "condition": {
          "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
          "$ref": "Expr"
        }
      }
    },
    "ApplicationTemplateRevision": {
      "description": "Application template revision resource.",
      "id": "ApplicationTemplateRevision",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. The application template revision name.",
          "type": "string"
        },
        "artifactLocation": {
          "readOnly": true,
          "description": "Output only. Details of the location where the IaC for this ApplicationTemplate Revision was last successfully exported.",
          "$ref": "ArtifactLocation"
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The application template revision creation timestamp."
        },
        "snapshot": {
          "readOnly": true,
          "description": "Output only. The serialized application template.",
          "$ref": "SerializedApplicationTemplate"
        }
      }
    },
    "ConnectionSource": {
      "id": "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"
    },
    "SaaSRuntimeContext": {
      "id": "SaaSRuntimeContext",
      "description": "SaaS runtime context.",
      "properties": {
        "saasNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. The SaaS names. Format for each SaaS: projects/{project}/locations/{location}/saas/{saas}"
        }
      },
      "type": "object"
    },
    "TerraformBlueprintUiMetadata": {
      "properties": {
        "terraformUiInput": {
          "readOnly": true,
          "description": "Output only. Terraform UI inputs.",
          "$ref": "TerraformUiInput"
        },
        "terraformUiOutput": {
          "readOnly": true,
          "description": "Output only. Terraform UI outputs.",
          "$ref": "TerraformUiOutput"
        }
      },
      "type": "object",
      "id": "TerraformBlueprintUiMetadata",
      "description": "Terraform blueprint UI metadata."
    },
    "FindingADCMetadata": {
      "type": "object",
      "properties": {
        "componentName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Component the finding belongs to."
        }
      },
      "description": "Metadata related to the Application Design Center with the finding.",
      "id": "FindingADCMetadata"
    },
    "Policy": {
      "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).",
      "id": "Policy",
      "type": "object",
      "properties": {
        "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",
          "items": {
            "$ref": "AuditConfig"
          },
          "description": "Specifies cloud audit logging configuration for this policy."
        },
        "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": {
          "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.",
          "type": "string",
          "format": "byte"
        }
      }
    },
    "Criticality": {
      "id": "Criticality",
      "description": "Criticality of the Application, Service, or Workload",
      "properties": {
        "type": {
          "description": "Required. Criticality Type.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "MISSION_CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ],
          "enumDescriptions": [
            "Unspecified type.",
            "Mission critical service, application or workload.",
            "High impact.",
            "Medium impact.",
            "Low impact."
          ],
          "type": "string"
        },
        "level": {
          "description": "Optional. Criticality level. Can contain only lowercase letters, numeric characters, underscores, and dashes. Can have a maximum length of 63 characters. Deprecated: Please refer to type instead.",
          "deprecated": true,
          "type": "string"
        },
        "missionCritical": {
          "deprecated": true,
          "type": "boolean",
          "description": "Optional. Indicates mission-critical Application, Service, or Workload. Deprecated: Please refer to type instead."
        }
      },
      "type": "object"
    },
    "ContactInfo": {
      "description": "Contact information of stakeholders.",
      "id": "ContactInfo",
      "type": "object",
      "properties": {
        "channel": {
          "description": "Optional. Communication channel of the contacts.",
          "$ref": "Channel"
        },
        "displayName": {
          "description": "Optional. Contact's name. Can have a maximum length of 63 characters.",
          "type": "string"
        },
        "email": {
          "description": "Required. Email address of the contacts.",
          "type": "string"
        }
      }
    },
    "ApplyCondition": {
      "properties": {
        "conditionKey": {
          "description": "Required. The key of the parameter for the condition.",
          "type": "string"
        },
        "conditionValue": {
          "description": "Required. The value of the parameter for the condition.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ApplyCondition",
      "description": "Condition for applying the policy. Accepts the `criticality` and `environment` parameters from the application template."
    },
    "RemediationStep": {
      "id": "RemediationStep",
      "description": "Remediation steps that can be taken to rectify the finding.",
      "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"
        }
      },
      "type": "object"
    },
    "RegisterAppHubApplicationResourcesRequest": {
      "type": "object",
      "properties": {
        "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"
        },
        "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"
        }
      },
      "description": "Request message for RegisterAppHubApplicationResources method.",
      "id": "RegisterAppHubApplicationResourcesRequest"
    },
    "AssessmentReport": {
      "id": "AssessmentReport",
      "description": "Aggregated assessment report from all domains.",
      "properties": {
        "adcApplicationTemplateUri": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Application Template URI."
        },
        "adcSpaceUri": {
          "description": "Output only. Space URI.",
          "type": "string",
          "readOnly": true
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time at which the report was created."
        },
        "adcApplicationUri": {
          "description": "Output only. Application URI.",
          "readOnly": true,
          "type": "string"
        },
        "adcCatalogTemplateUri": {
          "description": "Output only. Catalog Template URI.",
          "type": "string",
          "readOnly": true
        },
        "domainAssessmentReports": {
          "items": {
            "$ref": "DomainAssessmentReport"
          },
          "description": "Output only. Generated best practice reports.",
          "readOnly": true,
          "type": "array"
        },
        "skippedDomains": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. Skipped domains.",
          "items": {
            "$ref": "SkippedDomain"
          }
        }
      },
      "type": "object"
    },
    "TemplateUi": {
      "type": "object",
      "properties": {
        "input": {
          "description": "Required. The top-level input section that defines the list of variables and their sections on the deployment page.",
          "$ref": "TemplateUiInput"
        },
        "runtime": {
          "description": "Optional. The top-level output section that defines the list of outputs and their visibility on the deployment page.",
          "$ref": "TemplateUiOutput"
        }
      },
      "description": "TemplateUi defines the UI related information for the Template.",
      "id": "TemplateUi"
    },
    "Application": {
      "properties": {
        "state": {
          "type": "string",
          "description": "Output only. Deployment state of the application.",
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "CREATING_DEPLOYMENT",
            "UPDATING_DEPLOYMENT",
            "DELETING",
            "DEPLOYED",
            "DELETED",
            "FAILED",
            "DEPLOYING"
          ],
          "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."
          ],
          "readOnly": true
        },
        "name": {
          "description": "Identifier. The name of the application. Format: projects/{project}/locations/{location}/spaces/{space}/applications/{application}",
          "type": "string"
        },
        "updateTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Update timestamp."
        },
        "updatedTemplateRevision": {
          "description": "Output only. The updated template revision because of which the application is outdated.",
          "$ref": "UpdatedTemplateRevision",
          "readOnly": true
        },
        "projectParameters": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ProjectParameters"
          },
          "description": "Output only. List of project parameters for the application."
        },
        "connectionConfigs": {
          "type": "array",
          "items": {
            "$ref": "ConnectionConfig"
          },
          "description": "Optional. Connection configuration for the application."
        },
        "source": {
          "description": "Required. The application deployment source.",
          "$ref": "DeploymentSource"
        },
        "deploymentGroupMetadata": {
          "readOnly": true,
          "description": "Output only. The deployment group metadata of the application. This is applicable only for composite applications.",
          "$ref": "DeploymentGroupMetadata"
        },
        "deploymentRegion": {
          "description": "Optional. The region where the application is deployed.",
          "type": "string"
        },
        "apphubApplication": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The App Hub App associated with the application."
        },
        "deploymentProject": {
          "description": "Optional. Deployment project of the application.",
          "type": "string"
        },
        "appParameters": {
          "description": "Optional. A list of parameters to attach to the deployment source object, which is a catalog entry or application template snapshot.",
          "items": {
            "$ref": "Parameter"
          },
          "type": "array"
        },
        "serializedApplicationTemplate": {
          "description": "Output only. [Output only] Serialized application template.",
          "$ref": "SerializedApplicationTemplate",
          "readOnly": true
        },
        "paramsUpdateStrategy": {
          "enumDescriptions": [
            "Retains the existing value for the field.",
            "Replaces the existing field values with the provided ones."
          ],
          "description": "Optional. Specifies the strategy to use when updating the application parameters while updating the application template revision.",
          "enum": [
            "UPDATE_STRATEGY_UNSPECIFIED",
            "REPLACE"
          ],
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Optional. The type of the application.",
          "enum": [
            "APPLICATION_TYPE_UNSPECIFIED",
            "TERRAFORM_APP",
            "HELM_APP"
          ],
          "enumDescriptions": [
            "Application type is unspecified.",
            "Application type is terraform application.",
            "Application type is helm application."
          ]
        },
        "deploymentRevision": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output only] Optional Infra Manager deployment Id with revision"
        },
        "artifactLocation": {
          "description": "Output only. Details of the location where the IaC for this application was last successfully exported.",
          "$ref": "ArtifactLocation",
          "readOnly": true
        },
        "componentParameters": {
          "items": {
            "$ref": "ComponentParameters"
          },
          "description": "Optional. A list of component parameters to associate with the application.",
          "type": "array"
        },
        "previewReference": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Preview reference for the application."
        },
        "importExistingResources": {
          "description": "Optional. Import existing resources into the application.",
          "type": "boolean"
        },
        "description": {
          "description": "Optional. Description of the application.",
          "type": "string"
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Create timestamp."
        },
        "deploymentMetadata": {
          "readOnly": true,
          "description": "Output only. Deployment metadata of the application.",
          "$ref": "DeploymentMetadata"
        },
        "deploymentTarget": {
          "description": "Optional. The deployment target of the application.",
          "$ref": "DeploymentTarget"
        },
        "serviceAccount": {
          "description": "Optional. Your own service account that you use to deploy an application.",
          "type": "string"
        },
        "compositionType": {
          "readOnly": true,
          "description": "Output only. The composition type of the application: STANDARD OR COMPOSITE.",
          "enum": [
            "APPLICATION_COMPOSITION_TYPE_UNSPECIFIED",
            "STANDARD",
            "COMPOSITE"
          ],
          "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."
          ],
          "type": "string"
        },
        "compositeApplicationParameters": {
          "description": "Optional. Parameters that are required for composite applications.",
          "$ref": "CompositeApplicationParameters"
        },
        "displayName": {
          "description": "Optional. Display name of the application.",
          "type": "string"
        },
        "attributes": {
          "description": "Optional. Attributes of the application.",
          "$ref": "Attributes"
        },
        "rolesApisConfig": {
          "items": {
            "$ref": "RolesAndApisConfig"
          },
          "description": "Optional. Project-specific configurations required for application deployment, including IAM roles and APIs. The list can contain up to 100 items.",
          "type": "array"
        },
        "scope": {
          "description": "Required. Scope of the application.",
          "$ref": "Scope"
        }
      },
      "type": "object",
      "id": "Application",
      "description": "Represents the application resource."
    },
    "TemplateSchema": {
      "type": "object",
      "properties": {
        "variables": {
          "description": "Required. All defined variables for the Template",
          "items": {
            "$ref": "TemplateVariable"
          },
          "type": "array"
        }
      },
      "description": "TemplateSchema provides the input variables lists and connection information.",
      "id": "TemplateSchema"
    },
    "ListApplicationTemplateSystemRevisionsResponse": {
      "type": "object",
      "properties": {
        "applicationTemplateSystemRevisions": {
          "description": "The list of application template system revisions.",
          "items": {
            "$ref": "ApplicationTemplateSystemRevision"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.",
          "type": "string"
        },
        "unreachable": {
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Message for response to listing application template system revisions.",
      "id": "ListApplicationTemplateSystemRevisionsResponse"
    },
    "SetIamPolicyRequest": {
      "description": "Request message for `SetIamPolicy` method.",
      "id": "SetIamPolicyRequest",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`",
          "type": "string",
          "format": "google-fieldmask"
        },
        "policy": {
          "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"
        }
      }
    }
  },
  "documentationLink": "http://cloud.google.com/application-design-center/docs",
  "batchPath": "batch",
  "mtlsRootUrl": "https://designcenter.mtls.googleapis.com/"
}
