{
  "parameters": {
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "description": "Data format for response.",
      "default": "json",
      "location": "query"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "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.",
      "location": "query",
      "type": "string"
    }
  },
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "kind": "discovery#restDescription",
  "description": "Workload Manager is a service that provides tooling for enterprise workloads to automate the deployment and validation of your workloads against best practices and recommendations.",
  "discoveryVersion": "v1",
  "ownerName": "Google",
  "version_module": true,
  "mtlsRootUrl": "https://workloadmanager.mtls.googleapis.com/",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "resources": {
            "deployments": {
              "resources": {
                "actuations": {
                  "methods": {
                    "list": {
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments/{deploymentsId}/actuations",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameterOrder": [
                        "parent"
                      ],
                      "id": "workloadmanager.projects.locations.deployments.actuations.list",
                      "description": "Lists Actuations in a given project, location and deployment.",
                      "response": {
                        "$ref": "ListActuationsResponse"
                      },
                      "httpMethod": "GET",
                      "path": "v1alpha/{+parent}/actuations",
                      "parameters": {
                        "pageToken": {
                          "description": "A token identifying a page of results the server should return.",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Filtering results",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                          "location": "query",
                          "type": "string"
                        },
                        "parent": {
                          "required": true,
                          "location": "path",
                          "description": "Required. The resource prefix of the Actuation using the form: 'projects/{project_id}/locations/{location}/deployments/{deployment}'",
                          "pattern": "^projects/[^/]+/locations/[^/]+/deployments/[^/]+$",
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        }
                      }
                    },
                    "create": {
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments/{deploymentsId}/actuations",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "workloadmanager.projects.locations.deployments.actuations.create",
                      "description": "Creates a new actuation for an existing Deployment.",
                      "parameterOrder": [
                        "parent"
                      ],
                      "httpMethod": "POST",
                      "request": {
                        "$ref": "Actuation"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "path": "v1alpha/{+parent}/actuations",
                      "parameters": {
                        "parent": {
                          "location": "path",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/deployments/[^/]+$",
                          "type": "string",
                          "description": "Required. The resource name of the Actuation location using the form: 'projects/{project_id}/locations/{location}/deployments/{deployment}'"
                        },
                        "requestId": {
                          "type": "string",
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "location": "query"
                        }
                      }
                    },
                    "get": {
                      "id": "workloadmanager.projects.locations.deployments.actuations.get",
                      "description": "Gets details of a single Actuation.",
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments/{deploymentsId}/actuations/{actuationsId}",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1alpha/{+name}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "description": "Required. Name of the resource",
                          "pattern": "^projects/[^/]+/locations/[^/]+/deployments/[^/]+/actuations/[^/]+$",
                          "type": "string"
                        }
                      },
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "Actuation"
                      }
                    },
                    "delete": {
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "workloadmanager.projects.locations.deployments.actuations.delete",
                      "description": "Deletes a single Actuation",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments/{deploymentsId}/actuations/{actuationsId}",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1alpha/{+name}",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the book to delete. project/{project_id}/locations/{location_id}/deployments/{deployment_id}/actuations/{actuation_id}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/deployments/[^/]+/actuations/[^/]+$",
                          "type": "string",
                          "required": true,
                          "location": "path"
                        }
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "httpMethod": "DELETE"
                    }
                  }
                }
              },
              "methods": {
                "list": {
                  "id": "workloadmanager.projects.locations.deployments.list",
                  "description": "Lists Deployments in a given project and location.",
                  "parameterOrder": [
                    "parent"
                  ],
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha/{+parent}/deployments",
                  "parameters": {
                    "pageToken": {
                      "type": "string",
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query"
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "description": "Required. The resource prefix of the Deployment using the form: `projects/{project_id}/locations/{location_id}`",
                      "location": "path",
                      "required": true
                    },
                    "pageSize": {
                      "description": "Requested page size. Server may return fewer items than requested. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "filter": {
                      "type": "string",
                      "description": "Filter resource follow https://google.aip.dev/160",
                      "location": "query"
                    },
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "ListDeploymentsResponse"
                  }
                },
                "create": {
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Creates a new Deployment in a given project and location.",
                  "id": "workloadmanager.projects.locations.deployments.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "Deployment"
                  },
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "parent": {
                      "required": true,
                      "location": "path",
                      "description": "Required. The resource prefix of the Deployment using the form: `projects/{project_id}/locations/{location_id}`",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    },
                    "deploymentId": {
                      "description": "Required. Id of the deployment",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha/{+parent}/deployments"
                },
                "get": {
                  "response": {
                    "$ref": "Deployment"
                  },
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource. The format will be 'projects/{project_id}/locations/{location_id}/deployments/{deployment_id}'",
                      "pattern": "^projects/[^/]+/locations/[^/]+/deployments/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "path": "v1alpha/{+name}",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments/{deploymentsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Gets details of a single Deployment.",
                  "id": "workloadmanager.projects.locations.deployments.get"
                },
                "delete": {
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1alpha/{+name}",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/deployments/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    },
                    "force": {
                      "description": "If set to true, any actuation will also be deleted. Followed the best practice from https://aip.dev/135#cascading-delete",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/deployments/{deploymentsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "workloadmanager.projects.locations.deployments.delete",
                  "description": "Deletes a single Deployment.",
                  "parameterOrder": [
                    "name"
                  ]
                }
              }
            },
            "operations": {
              "methods": {
                "list": {
                  "path": "v1alpha/{+name}/operations",
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "description": "The name of the operation's parent resource."
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "returnPartialSuccess": {
                      "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "filter": {
                      "type": "string",
                      "description": "The standard list filter.",
                      "location": "query"
                    }
                  },
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "workloadmanager.projects.locations.operations.list",
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "cancel": {
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "workloadmanager.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`.",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha/{+name}:cancel",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "httpMethod": "POST"
                },
                "get": {
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "path": "v1alpha/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
                  "id": "workloadmanager.projects.locations.operations.get",
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "workloadmanager.projects.locations.operations.delete",
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
                  "response": {
                    "$ref": "Empty"
                  },
                  "httpMethod": "DELETE",
                  "path": "v1alpha/{+name}",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "type": "string",
                      "description": "The name of the operation resource to be deleted.",
                      "required": true,
                      "location": "path"
                    }
                  }
                }
              }
            }
          },
          "methods": {
            "list": {
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "httpMethod": "GET",
              "parameters": {
                "pageToken": {
                  "type": "string",
                  "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"
                },
                "pageSize": {
                  "type": "integer",
                  "format": "int32",
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "location": "query"
                },
                "filter": {
                  "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).",
                  "location": "query"
                },
                "name": {
                  "pattern": "^projects/[^/]+$",
                  "type": "string",
                  "description": "The resource that owns the locations collection, if applicable.",
                  "required": true,
                  "location": "path"
                },
                "extraLocationTypes": {
                  "type": "string",
                  "repeated": true,
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "location": "query"
                }
              },
              "path": "v1alpha/{+name}/locations",
              "flatPath": "v1alpha/projects/{projectsId}/locations",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "id": "workloadmanager.projects.locations.list"
            },
            "get": {
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "type": "string",
                  "description": "Resource name for the location."
                }
              },
              "path": "v1alpha/{+name}",
              "response": {
                "$ref": "Location"
              },
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "description": "Gets information about a location.",
              "id": "workloadmanager.projects.locations.get",
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://workloadmanager.googleapis.com/",
  "ownerDomain": "google.com",
  "id": "workloadmanager:v1alpha",
  "servicePath": "",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "canonicalName": "Workload Manager",
  "batchPath": "batch",
  "documentationLink": "https://cloud.google.com/workload-manager/docs",
  "schemas": {
    "DatabaseDetails": {
      "description": "Message for sap instant details",
      "id": "DatabaseDetails",
      "type": "object",
      "properties": {
        "image": {
          "description": "Required. image for database server",
          "type": "string"
        },
        "databaseServiceAccount": {
          "description": "Database service account - let custoemrs bring their own SA for database",
          "type": "string"
        },
        "instanceId": {
          "description": "Optional. instance id",
          "type": "string"
        },
        "machineType": {
          "description": "Required. machine type",
          "type": "string"
        },
        "diskType": {
          "description": "Required. disk_type",
          "type": "string"
        },
        "sid": {
          "description": "Required. The SID is a three-digit server-specific unique identification code.",
          "type": "string"
        },
        "secretManagerSecret": {
          "description": "Required. secret_manager_secret",
          "type": "string"
        },
        "primaryDbVm": {
          "description": "Optional. primary db vm name",
          "type": "string"
        },
        "secondaryDbVm": {
          "description": "Optional. secondary db vm name",
          "type": "string"
        }
      }
    },
    "SqlServerWorkload": {
      "id": "SqlServerWorkload",
      "description": "Message for MS SQL workload",
      "type": "object",
      "properties": {
        "osImageType": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified OS image type",
            "Public image",
            "Custom image"
          ],
          "enum": [
            "OS_IMAGE_TYPE_UNSPECIFIED",
            "PUBLIC_IMAGE",
            "CUSTOM_IMAGE"
          ],
          "description": "Optional. OS image type, it's used to create boot disks for VM instances When either Windows licensing type or SQL licensing type is BYOL, this option is disabled and default to custom image"
        },
        "pacemaker": {
          "description": "Optional. pacemaker configuration, only applicable for Linux HA deployments",
          "$ref": "Pacemaker"
        },
        "isSqlPayg": {
          "description": "Required. SQL licensing type",
          "type": "boolean"
        },
        "osImage": {
          "description": "Required. the image of the operating system",
          "type": "string"
        },
        "haType": {
          "description": "Optional. AOAG or FCI, it is only needed for High Availability deployment mode",
          "type": "string",
          "enumDescriptions": [
            "Unspecified HA type",
            "AOAG HA type",
            "FCI HA type"
          ],
          "enum": [
            "HA_TYPE_UNSPECIFIED",
            "AOAG",
            "FCI"
          ]
        },
        "activeDirectory": {
          "$ref": "ActiveDirectory",
          "description": "Required. active directory details"
        },
        "deploymentModel": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified deployment model",
            "High Availability deployment model",
            "Single Instance deployment model"
          ],
          "enum": [
            "DEPLOYMENT_MODEL_UNSPECIFIED",
            "HIGH_AVAILABILITY",
            "SINGLE_INSTANCE"
          ],
          "description": "Required. HIGH_AVAILABILITY or SINGLE_INSTANCE"
        },
        "sqlServerVersion": {
          "description": "Optional. 2017 or 2019 or 2022",
          "enum": [
            "SQL_SERVER_VERSION_TYPE_UNSPECIFIED",
            "SQL_SERVER_VERSION_TYPE_2017",
            "SQL_SERVER_VERSION_TYPE_2019",
            "SQL_SERVER_VERSION_TYPE_2022"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified type",
            "2017 type",
            "2019 type",
            "2022 type"
          ]
        },
        "environmentType": {
          "description": "Required. deployment environment",
          "type": "string",
          "enumDescriptions": [
            "Unspecified environment type",
            "Non-production environment type",
            "Production environment type"
          ],
          "enum": [
            "ENVIRONMENT_TYPE_UNSPECIFIED",
            "NON_PRODUCTION",
            "PRODUCTION"
          ]
        },
        "database": {
          "description": "Required. database details",
          "$ref": "Database"
        },
        "computeEngineServiceAccount": {
          "description": "Compute engine service account - let customers bring their own SA for Compute engine",
          "type": "string"
        },
        "fciType": {
          "description": "Optional. SHARED_DISK or S2D",
          "type": "string",
          "enumDescriptions": [
            "Unspecified FCI type",
            "SHARED DISK FCI type",
            "S2D FCI type"
          ],
          "enum": [
            "FCI_TYPE_UNSPECIFIED",
            "SHARED_DISK",
            "S2D"
          ]
        },
        "operatingSystemType": {
          "description": "Required. type of the operating system the SQL server is going to run on top of",
          "enum": [
            "OPERATING_SYSTEM_TYPE_UNSPECIFIED",
            "WINDOWS",
            "UBUNTU",
            "RED_HAT_ENTERPRISE_LINUX",
            "SUSE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified operating system type",
            "Windows operating system type",
            "Ubuntu operating system type",
            "Red Hat Enterprise Linux operating system type",
            "Suse operating system type"
          ]
        },
        "vmPrefix": {
          "description": "Required. should be unique in the project",
          "type": "string"
        },
        "sqlServerEdition": {
          "enum": [
            "SQL_SERVER_EDITION_TYPE_UNSPECIFIED",
            "SQL_SERVER_EDITION_TYPE_DEVELOPER",
            "SQL_SERVER_EDITION_TYPE_ENTERPRISE",
            "SQL_SERVER_EDITION_TYPE_STANDARD",
            "SQL_SERVER_EDITION_TYPE_WEB"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified type",
            "Developer type",
            "Enterprise type",
            "Standard type",
            "Web type"
          ],
          "description": "Optional. SQL Server Edition type, only applicable when Operating System is Linux"
        },
        "mediaBucket": {
          "description": "Required. name of the media storing SQL server installation files",
          "type": "string"
        },
        "location": {
          "description": "Required. location details",
          "$ref": "SqlLocationDetails"
        }
      }
    },
    "SqlLocationDetails": {
      "description": "Location and networking details for configuring SQL server workload",
      "id": "SqlLocationDetails",
      "type": "object",
      "properties": {
        "primaryZone": {
          "description": "Required. primary zone",
          "type": "string"
        },
        "subnetwork": {
          "description": "Required. subnetwork name",
          "type": "string"
        },
        "internetAccess": {
          "description": "Required. Internet Access",
          "enum": [
            "INTERNET_ACCESS_UNSPECIFIED",
            "ALLOW_EXTERNAL_IP",
            "CONFIGURE_NAT"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified internet access",
            "Allow external IP",
            "Configure NAT"
          ]
        },
        "gcpProjectId": {
          "description": "Required. the project that infrastructure deployed, currently only supports the same project where the deployment resource exists.",
          "type": "string"
        },
        "network": {
          "description": "Required. network name",
          "type": "string"
        },
        "secondaryZone": {
          "description": "Optional. secondary zone can't be same as primary_zone and is only for High Availability deployment mode",
          "type": "string"
        },
        "dnsZone": {
          "description": "Optional. create a new DNS Zone when the field is empty, Only show for `Using an existing DNS` List of existing DNS Zones tf variable name: existing_dns_zone_name",
          "type": "string"
        },
        "region": {
          "description": "Required. region name",
          "type": "string"
        },
        "tertiaryZone": {
          "description": "Optional. teriary zone can't be same as primary_zone and secondary zone, and it is only for High Availability deployment mode",
          "type": "string"
        }
      }
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time the operation was created."
        },
        "verb": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Name of the verb executed by the operation."
        },
        "statusMessage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any."
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true,
          "type": "string"
        },
        "apiVersion": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. API version used to start the operation."
        },
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "endTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time the operation finished running."
        }
      }
    },
    "Pacemaker": {
      "id": "Pacemaker",
      "description": "pacemaker configuration",
      "type": "object",
      "properties": {
        "bucketNameNodeCertificates": {
          "description": "Required. bucket location for node certificates",
          "type": "string"
        },
        "pacemakerClusterSecret": {
          "description": "Required. pacemaker cluster secret name",
          "type": "string"
        },
        "sqlPacemakerSecret": {
          "description": "Required. sql pacemaker secret name",
          "type": "string"
        },
        "sqlPacemakerUsername": {
          "description": "Required. sql pacemaker username",
          "type": "string"
        },
        "pacemakerCluster": {
          "description": "Required. pacemaker cluster name",
          "type": "string"
        },
        "pacemakerClusterUsername": {
          "description": "Required. pacemaker cluster username",
          "type": "string"
        }
      }
    },
    "AppDetails": {
      "id": "AppDetails",
      "description": "Message for sap instant details",
      "type": "object",
      "properties": {
        "ersVm": {
          "description": "Optional. ERS vm name",
          "type": "string"
        },
        "ascsImage": {
          "description": "Required. image for ascs server",
          "type": "string"
        },
        "sid": {
          "description": "Required. The SAP SID is a three-digit server-specific unique identification code.",
          "type": "string"
        },
        "ersInstanceId": {
          "description": "Optional. instance id for ers",
          "type": "string"
        },
        "ascsInstanceId": {
          "description": "Optional. instance id for ascs",
          "type": "string"
        },
        "appServiceAccount": {
          "description": "Application service account - let custoemrs bring their own SA for application",
          "type": "string"
        },
        "machineType": {
          "description": "Required. machine type",
          "type": "string"
        },
        "image": {
          "description": "Required. image for app server and ascs server",
          "type": "string"
        },
        "appVmNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. Customized vm names"
        },
        "ascsMachineType": {
          "description": "Required. ascs_machine_type",
          "type": "string"
        },
        "appInstanceId": {
          "description": "Optional. instance id for app",
          "type": "string"
        },
        "ascsVm": {
          "description": "Optional. ASCS vm name",
          "type": "string"
        },
        "ascsServiceAccount": {
          "description": "ASCS service account - let custoemrs bring their own SA for ASCS",
          "type": "string"
        },
        "secretManagerSecret": {
          "description": "Required. secret_manager_secret",
          "type": "string"
        },
        "vmsMultiplier": {
          "type": "integer",
          "format": "int32",
          "description": "Required. vms_multiplier"
        },
        "sharedStorage": {
          "description": "Optional. Storage location",
          "type": "string"
        }
      }
    },
    "CancelOperationRequest": {
      "id": "CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation.",
      "type": "object",
      "properties": {}
    },
    "LocationDetails": {
      "type": "object",
      "properties": {
        "zone2Name": {
          "description": "Optional. zone2_name",
          "type": "string"
        },
        "dnsZoneNameSuffix": {
          "description": "Optional. dns_zone_name_suffix",
          "type": "string"
        },
        "deploymentDnsEnabled": {
          "description": "Optional. when user skip DNS configuration from UI, deployment_dns_enabled=false otherwise deployment_dns_enabled=true",
          "type": "boolean"
        },
        "networkProject": {
          "description": "Optional. network project",
          "type": "string"
        },
        "createCommsFirewall": {
          "description": "Optional. create firewall, if true, create firewall for the deployment. This field provides an option to not always create firewall for the deployment.",
          "type": "boolean"
        },
        "subnetName": {
          "description": "Required. subnet_name",
          "type": "string"
        },
        "zone1Name": {
          "description": "Required. zone1_name",
          "type": "string"
        },
        "customTags": {
          "description": "Optional. network tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "internetAccess": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "INTERNETACCESS_UNSPECIFIED",
            "ALLOW_EXTERNAL_IP",
            "CONFIGURE_NAT"
          ]
        },
        "vpcName": {
          "description": "Required. vpc_name",
          "type": "string"
        },
        "dnsZone": {
          "description": "Optional. dns zone name",
          "type": "string"
        },
        "regionName": {
          "description": "Required. region_name",
          "type": "string"
        }
      },
      "id": "LocationDetails",
      "description": "Message for sap instant details"
    },
    "TerraformVariable": {
      "id": "TerraformVariable",
      "description": "In order to align with Infra Manager dependency, we create the same TerraformVariable message to represent a Terraform input variable, by following Infra Manager's API documentation: https://cloud.google.com/infrastructure-manager/docs/reference/rest A Terraform input variable.",
      "type": "object",
      "properties": {
        "inputValue": {
          "description": "Optional. Input variable value.",
          "type": "any"
        }
      }
    },
    "SapSystemS4Config": {
      "id": "SapSystemS4Config",
      "description": "Message for sap system workload",
      "type": "object",
      "properties": {
        "database": {
          "description": "database details",
          "$ref": "DatabaseDetails"
        },
        "environmentType": {
          "description": "Required. deployment environment",
          "enum": [
            "ENVIRONMENT_TYPE_UNSPECIFIED",
            "NON_PRODUCTION",
            "PRODUCTION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified environment type",
            "Non-production environment type",
            "Production environment type"
          ]
        },
        "sapBootDiskImage": {
          "description": "Optional. sap_boot_disk_image",
          "type": "string"
        },
        "deploymentModel": {
          "enum": [
            "DEPLOYMENT_MODEL_UNSPECIFIED",
            "DISTRIBUTED",
            "DISTRIBUTED_HA"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "description": "Required. two model non-HA and HA supported"
        },
        "ansibleRunnerServiceAccount": {
          "description": "Ansible runner service account - let custoemrs bring their own SA for Ansible runner",
          "type": "string"
        },
        "vmPrefix": {
          "description": "vm_prefix",
          "type": "string"
        },
        "location": {
          "$ref": "LocationDetails",
          "description": "database details"
        },
        "gcpProjectId": {
          "description": "the project that infrastructure deployed, current only support the same project where the deployment resource exist.",
          "type": "string"
        },
        "app": {
          "$ref": "AppDetails",
          "description": "instance details"
        },
        "onboardToObservability": {
          "description": "Optional. Specifies whether Workload Manager observability is enabled for this deployment.",
          "type": "boolean"
        },
        "version": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "VERSION_UNSPECIFIED",
            "S4_HANA_2021",
            "S4_HANA_2022",
            "S4_HANA_2023"
          ],
          "description": "Required. sap hana version"
        },
        "mediaBucketName": {
          "description": "Required. media_bucket_name",
          "type": "string"
        },
        "scalingMethod": {
          "description": "Required. support scale up and scale out",
          "enum": [
            "SCALE_METHOD_UNSPECIFIED",
            "SCALE_UP",
            "SCALE_OUT"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "Scale up: Increases the size of a physical machine by increasing the amount of RAM and CPU available for processing",
            "Scale out: Combines multiple independent computers into one system"
          ]
        },
        "allowStoppingForUpdate": {
          "type": "boolean"
        }
      }
    },
    "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); }",
      "id": "Empty",
      "type": "object",
      "properties": {}
    },
    "Database": {
      "description": "Database details",
      "id": "Database",
      "type": "object",
      "properties": {
        "tenancyModel": {
          "enum": [
            "TENANCY_MODEL_UNSPECIFIED",
            "SHARED",
            "SOLE_TENANT"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified tenancy model",
            "Shared tenancy model",
            "Sole Tenant tenancy model"
          ],
          "description": "Required. SHARED or SOLE_TENANT"
        },
        "machineType": {
          "description": "Required. machine type",
          "type": "string"
        },
        "smt": {
          "description": "Required. whether simultaneous multithreading is enabled or not",
          "type": "boolean"
        },
        "diskType": {
          "description": "Required. disk_type",
          "type": "string"
        },
        "secondarySoleTenantNodeType": {
          "description": "Optional. the type of a secondary-sole-tenant node/node group e.g. compute.googleapis.com/node-name",
          "type": "string"
        },
        "soleTenantNodeType": {
          "description": "Optional. the type of a primary sole-tenant node/node group e.g. compute.googleapis.com/node-name",
          "type": "string"
        },
        "secretManagerSecret": {
          "description": "Required. secret_manager_secret",
          "type": "string"
        },
        "soleTenantNode": {
          "description": "Optional. the name of a primary sole-tenant node/node group",
          "type": "string"
        },
        "tempdbOnSsd": {
          "description": "Required. whether to have TempDB on local SSD",
          "type": "boolean"
        },
        "floatingIpAddress": {
          "description": "Optional. only useful for Linux High Availability setup",
          "type": "string"
        },
        "secondarySoleTenantNode": {
          "description": "Optional. the name of a secondary-sole-tenant node/node group",
          "type": "string"
        }
      }
    },
    "Location": {
      "description": "A resource that represents a Google Cloud location.",
      "id": "Location",
      "type": "object",
      "properties": {
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "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."
          }
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      }
    },
    "ListDeploymentsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "deployments": {
          "type": "array",
          "items": {
            "$ref": "Deployment"
          },
          "description": "The list of Deployment"
        }
      },
      "id": "ListDeploymentsResponse",
      "description": "Message for response to listing Deployments"
    },
    "ActiveDirectory": {
      "description": "Active directory details",
      "id": "ActiveDirectory",
      "type": "object",
      "properties": {
        "domainUsername": {
          "description": "Optional. domain username",
          "type": "string"
        },
        "secretManagerSecret": {
          "description": "Required. secret_manager_secret",
          "type": "string"
        },
        "dnsAddress": {
          "description": "Optional. DNS IP address",
          "type": "string"
        },
        "domain": {
          "description": "Optional. human readable form of a domain such as “google.com”.",
          "type": "string"
        },
        "type": {
          "enum": [
            "ACTIVE_DIRECTORY_TYPE_UNSPECIFIED",
            "GCP_MANAGED",
            "SELF_MANAGED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified active directory type",
            "GCP managed active directory type",
            "Self managed active directory type"
          ],
          "description": "Required. active directory type"
        }
      }
    },
    "ListActuationsResponse": {
      "id": "ListActuationsResponse",
      "description": "The response object from `ListActuations`.",
      "type": "object",
      "properties": {
        "actuations": {
          "type": "array",
          "items": {
            "$ref": "Actuation"
          },
          "description": "The list of Actuation"
        },
        "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"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Locations that could not be reached."
        }
      }
    },
    "ListOperationsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "unreachable": {
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Operation"
          }
        }
      },
      "description": "The response message for Operations.ListOperations.",
      "id": "ListOperationsResponse"
    },
    "ReconciliationOperationMetadata": {
      "type": "object",
      "properties": {
        "exclusiveAction": {
          "enum": [
            "UNKNOWN_REPAIR_ACTION",
            "DELETE",
            "RETRY"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unknown repair action.",
            "The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.",
            "This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource."
          ],
          "enumDeprecated": [
            false,
            true,
            false
          ],
          "description": "Excluisive action returned by the CLH."
        },
        "deleteResource": {
          "deprecated": true,
          "description": "DEPRECATED. Use exclusive_action instead.",
          "type": "boolean"
        }
      },
      "id": "ReconciliationOperationMetadata",
      "description": "Operation metadata returned by the CLH during resource state reconciliation."
    },
    "Actuation": {
      "id": "Actuation",
      "description": "The Actuation object represents the bootstrap state and output results of deployed infrastructure and software.",
      "type": "object",
      "properties": {
        "actuationOutput": {
          "$ref": "ActuationOutput",
          "description": "Output only. [Output only] Actuation output",
          "readOnly": true
        },
        "startTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. [Output only] Start time stamp"
        },
        "endTime": {
          "description": "Output only. [Output only] End time stamp",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "name": {
          "description": "The name of actuation resource. The format is projects/{project}/locations/{location}/deployments/{deployment}/actuations/{actuation}",
          "type": "string"
        },
        "state": {
          "description": "Output only. [Output only] Actuation state",
          "type": "string",
          "enumDescriptions": [
            "state unspecified",
            "creating infrastructure in backend (terraform applying)",
            "success",
            "failed either in infra creating, post infra configuring or infra destroying",
            "configure workload after infrastructure is ready (ansible running)",
            "destroying infrastructure in backend (terraform destroying)",
            "ansible is timeout due to losing heartbeat in post infra configuring"
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "INFRA_CREATING",
            "SUCCEEDED",
            "FAILED",
            "POST_INFRA_CONFIGURING",
            "INFRA_DESTROYING",
            "TIMEOUT"
          ],
          "readOnly": true
        },
        "deploymentOutput": {
          "description": "Output only. [Output only] Deployment output",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "DeploymentOutput"
          }
        }
      }
    },
    "ActuationOutput": {
      "type": "object",
      "properties": {
        "blueprintId": {
          "description": "reference to Blueprint Controller deployment and revision resource",
          "type": "string"
        },
        "terraformError": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. error message return from terraform."
        },
        "errorCode": {
          "readOnly": true,
          "enum": [
            "ERROR_CODE_UNSPECIFIED",
            "TERRAFORM_FAILED",
            "PERMISSION_DENIED_IN_TERRAFORM",
            "QUOTA_EXCEED_IN_TERRAFORM",
            "ANSIBLE_FAILED",
            "CONSTRAINT_VIOLATION_IN_TERRAFORM",
            "RESOURCE_ALREADY_EXISTS_IN_TERRAFORM",
            "RESOURCE_UNAVAILABLE_IN_TERRAFORM",
            "PERMISSION_DENIED_IN_ANSIBLE",
            "INVALID_SECRET_IN_ANSIBLE",
            "TERRAFORM_DELETION_FAILED",
            "RESOURCE_IN_USE_IN_TERRAFORM_DELETION",
            "ANSIBLE_START_FAILED"
          ],
          "type": "string",
          "enumDescriptions": [
            "No error code was specified.",
            "general terraform failure",
            "permission error in terraform",
            "quota related error in terraform",
            "general ansible failure",
            "constraint related error in terraform",
            "resource already exists error in terraform",
            "resource not found error in terraform",
            "permission denied error in ansible",
            "secret related error in ansible",
            "general terraform failure during deletion",
            "resource in use error in terraform deletion",
            "start up failure in ansible"
          ],
          "description": "Output only. Code describing any errors that may have occurred. If not specified, there is no error in actuation."
        },
        "ansibleFailedTask": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. failed task name return from ansible."
        },
        "terraformTemplate": {
          "description": "reference to terraform template used",
          "type": "string"
        },
        "errorLogs": {
          "description": "A link to actuation cloud build log.",
          "type": "string"
        },
        "cloudbuildId": {
          "description": "Cloud Build instance UUID associated with this revision, without any suffix or prefix",
          "type": "string"
        },
        "actuateLogs": {
          "description": "A link to gcs file that store build logs",
          "type": "string"
        },
        "ansibleError": {
          "description": "Output only. error message return from ansible.",
          "readOnly": true,
          "type": "string"
        },
        "hasUserFacingErrorMsg": {
          "description": "Output only. whether the error message is user facing. If true, the error message will be shown in the UI.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "id": "ActuationOutput",
      "description": "Message for output of Actuation"
    },
    "Deployment": {
      "type": "object",
      "properties": {
        "workerPool": {
          "description": "Optional. The user-specified Cloud Build worker pool resource in which the Cloud Build job will execute. Format: `projects/{project}/locations/{location}/workerPools/{workerPoolId}`. If this field is unspecified, the default Cloud Build worker pool will be used.",
          "type": "string"
        },
        "name": {
          "description": "The name of deployment resource. The format will be 'projects/{project_id}/locations/{location_id}/deployments/{deployment_id}'",
          "type": "string"
        },
        "sapSystemS4Config": {
          "description": "SAP system workload input",
          "$ref": "SapSystemS4Config"
        },
        "updateTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. [Output only] Update time stamp"
        },
        "serviceAccount": {
          "description": "User-specified Service Account (SA) credentials to be used for cloud build Format: `projects/{projectID}/serviceAccounts/{serviceAccount}` The default Cloud Build SA will be used initially if this field is not set during deployment creation",
          "type": "string"
        },
        "terraformVariables": {
          "description": "Optional. terraform_variables represents all the Terraform variables for the deployment workload. The key is the name of the Terraform variable, and the value is the TerraformVariable. For example: { \"project_id\": { \"input_value\": { \"string_value\": \"my-project-id\" } }, \"zone\": { \"input_value\": { \"string_value\": \"us-central1-a\" } } }",
          "additionalProperties": {
            "$ref": "TerraformVariable"
          },
          "type": "object"
        },
        "state": {
          "type": "string",
          "enumDescriptions": [
            "The default value. This value is used if the state is omitted.",
            "The deployment is being created.",
            "The deployment is healthy.",
            "The deployment is being updated.",
            "The deployment is being deleted.",
            "The deployment has encountered an unexpected error."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATING",
            "ACTIVE",
            "UPDATING",
            "DELETING",
            "FAILED"
          ],
          "description": "Output only. Current state of the deployment.",
          "readOnly": true
        },
        "description": {
          "description": "Description of the Deployment",
          "type": "string"
        },
        "workloadType": {
          "description": "Optional. Workload type of the deployment",
          "type": "string",
          "enumDescriptions": [
            "Unspecified workload type",
            "SAP S/4HANA workload type",
            "SQL Server workload type",
            "Oracle workload type"
          ],
          "enum": [
            "WORKLOAD_TYPE_UNSPECIFIED",
            "SAP_S4",
            "SQL_SERVER",
            "ORACLE"
          ]
        },
        "sqlServerWorkload": {
          "$ref": "SqlServerWorkload",
          "description": "MS SQL workload input"
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. [Output only] Create time stamp"
        }
      },
      "id": "Deployment",
      "description": "The Deployment object represents user intent for deploying a specific type of workload."
    },
    "Status": {
      "type": "object",
      "properties": {
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "type": "object"
          },
          "type": "array"
        },
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "Status",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors)."
    },
    "ListLocationsResponse": {
      "description": "The response message for Locations.ListLocations.",
      "id": "ListLocationsResponse",
      "type": "object",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Location"
          }
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      }
    },
    "DeploymentOutput": {
      "type": "object",
      "properties": {
        "name": {
          "description": "name of the resource",
          "type": "string"
        },
        "type": {
          "description": "type of the resource",
          "type": "string"
        }
      },
      "id": "DeploymentOutput",
      "description": "Message for output of deployment resource"
    },
    "Operation": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
          "type": "string"
        },
        "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": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
          "type": "object"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any."
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        }
      },
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "id": "Operation"
    }
  },
  "rootUrl": "https://workloadmanager.googleapis.com/",
  "name": "workloadmanager",
  "version": "v1alpha",
  "revision": "20260805",
  "fullyEncodeReservedExpansion": true,
  "title": "Workload Manager API",
  "protocol": "rest"
}
