{
  "name": "compute",
  "resources": {
    "regionCommitments": {
      "methods": {
        "list": {
          "description": "Retrieves a list of commitments contained within\nthe specified region.",
          "id": "compute.regionCommitments.list",
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/commitments",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "CommitmentList"
          },
          "parameters": {
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "default": "500",
              "type": "integer",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/commitments"
        },
        "update": {
          "description": "Updates the specified commitment with the data included in the request.\nUpdate is performed only on selected fields included as part of\nupdate-mask. Only the following fields can be updated: auto_renew and plan.",
          "parameterOrder": [
            "project",
            "region",
            "commitment"
          ],
          "id": "compute.regionCommitments.update",
          "request": {
            "$ref": "Commitment"
          },
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "paths": {
              "type": "string",
              "repeated": true,
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "description": "update_mask indicates fields to be updated as part of this request.",
              "format": "google-fieldmask",
              "type": "string",
              "location": "query"
            },
            "commitment": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the commitment that you want to update.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "PATCH",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/commitments/{commitment}"
        },
        "aggregatedList": {
          "description": "Retrieves an aggregated list of commitments by region.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "parameters": {
            "serviceProjectNumber": {
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "type": "integer"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/aggregated/commitments",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/aggregated/commitments",
          "id": "compute.regionCommitments.aggregatedList",
          "response": {
            "$ref": "CommitmentAggregatedList"
          }
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionCommitments.insert",
          "parameterOrder": [
            "project",
            "region"
          ],
          "request": {
            "$ref": "Commitment"
          },
          "path": "projects/{project}/regions/{region}/commitments",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            }
          },
          "httpMethod": "POST",
          "description": "Creates a commitment in the specified project using the data\nincluded in the request.",
          "flatPath": "projects/{project}/regions/{region}/commitments"
        },
        "get": {
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "commitment": {
              "description": "Name of the commitment to return.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "Commitment"
          },
          "description": "Returns the specified commitment resource.",
          "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/commitments/{commitment}",
          "id": "compute.regionCommitments.get",
          "parameterOrder": [
            "project",
            "region",
            "commitment"
          ]
        }
      }
    },
    "regionSslPolicies": {
      "methods": {
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "SslPoliciesList"
          },
          "path": "projects/{project}/regions/{region}/sslPolicies",
          "flatPath": "projects/{project}/regions/{region}/sslPolicies",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "maxResults": {
              "default": "500",
              "minimum": "0",
              "type": "integer",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "httpMethod": "GET",
          "description": "Lists all the SSL policies that have been configured for the specified\nproject and region.",
          "id": "compute.regionSslPolicies.list",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "get": {
          "response": {
            "$ref": "SslPolicy"
          },
          "httpMethod": "GET",
          "description": "Lists all of the ordered rules present in a single specified policy.",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "sslPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}",
          "id": "compute.regionSslPolicies.get",
          "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}",
          "parameterOrder": [
            "project",
            "region",
            "sslPolicy"
          ]
        },
        "insert": {
          "flatPath": "projects/{project}/regions/{region}/sslPolicies",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/sslPolicies",
          "request": {
            "$ref": "SslPolicy"
          },
          "id": "compute.regionSslPolicies.insert",
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Creates a new policy in the specified project and region using the data\nincluded in the request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "delete": {
          "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}",
          "parameterOrder": [
            "project",
            "region",
            "sslPolicy"
          ],
          "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}",
          "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted\nonly if it is not in use by any TargetHttpsProxy or TargetSslProxy\nresources.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "sslPolicy": {
              "description": "Name of the SSL policy to delete. The name must be 1-63 characters long,\nand comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionSslPolicies.delete"
        },
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}",
          "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}",
          "description": "Patches the specified SSL policy with the data included in the request.",
          "parameterOrder": [
            "project",
            "region",
            "sslPolicy"
          ],
          "id": "compute.regionSslPolicies.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "request": {
            "$ref": "SslPolicy"
          },
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "sslPolicy": {
              "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          }
        },
        "listAvailableFeatures": {
          "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures",
          "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures",
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "SslPoliciesListAvailableFeaturesResponse"
          },
          "description": "Lists all features that can be specified in the SSL policy when using\ncustom profile.",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "minimum": "0",
              "default": "500",
              "format": "uint32",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionSslPolicies.listAvailableFeatures"
        }
      }
    },
    "interconnectAttachments": {
      "methods": {
        "get": {
          "response": {
            "$ref": "InterconnectAttachment"
          },
          "id": "compute.interconnectAttachments.get",
          "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
          "parameterOrder": [
            "project",
            "region",
            "interconnectAttachment"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified interconnect attachment.",
          "parameters": {
            "interconnectAttachment": {
              "type": "string",
              "description": "Name of the interconnect attachment to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region for this request."
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}"
        },
        "patch": {
          "description": "Updates the specified interconnect attachment with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "httpMethod": "PATCH",
          "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
          "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            },
            "interconnectAttachment": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the interconnect attachment to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "interconnectAttachment"
          ],
          "request": {
            "$ref": "InterconnectAttachment"
          },
          "id": "compute.interconnectAttachments.patch"
        },
        "list": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves the list of interconnect attachments contained within\nthe specified region.",
          "id": "compute.interconnectAttachments.list",
          "response": {
            "$ref": "InterconnectAttachmentList"
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/interconnectAttachments",
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region for this request."
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "location": "query",
              "default": "500"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/interconnectAttachments"
        },
        "setLabels": {
          "description": "Sets the labels on an InterconnectAttachment. To learn more about labels,\nread the Labeling\nResources documentation.",
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "type": "string",
              "description": "The region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
          "id": "compute.interconnectAttachments.setLabels",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ]
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "validateOnly": {
              "location": "query",
              "type": "boolean",
              "description": "If true, the request will not be committed."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/interconnectAttachments",
          "httpMethod": "POST",
          "description": "Creates an InterconnectAttachment in the specified project using the data\nincluded in the request.",
          "path": "projects/{project}/regions/{region}/interconnectAttachments",
          "parameterOrder": [
            "project",
            "region"
          ],
          "id": "compute.interconnectAttachments.insert",
          "request": {
            "$ref": "InterconnectAttachment"
          }
        },
        "delete": {
          "description": "Deletes the specified interconnect attachment.",
          "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
          "parameterOrder": [
            "project",
            "region",
            "interconnectAttachment"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
          "id": "compute.interconnectAttachments.delete",
          "parameters": {
            "region": {
              "type": "string",
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "interconnectAttachment": {
              "location": "path",
              "required": true,
              "description": "Name of the interconnect attachment to delete.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "DELETE"
        },
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/interconnectAttachments",
          "id": "compute.interconnectAttachments.aggregatedList",
          "httpMethod": "GET",
          "response": {
            "$ref": "InterconnectAttachmentAggregatedList"
          },
          "path": "projects/{project}/aggregated/interconnectAttachments",
          "parameters": {
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "location": "query",
              "default": "500",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves an aggregated list of interconnect attachments.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`."
        }
      }
    },
    "regionCompositeHealthChecks": {
      "methods": {
        "insert": {
          "id": "compute.regionCompositeHealthChecks.insert",
          "parameterOrder": [
            "project",
            "region"
          ],
          "request": {
            "$ref": "CompositeHealthCheck"
          },
          "path": "projects/{project}/regions/{region}/compositeHealthChecks",
          "description": "Create a CompositeHealthCheck in the specified project in the given region\nusing the parameters that are included in the request.",
          "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          }
        },
        "getHealth": {
          "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}/getHealth",
          "response": {
            "$ref": "CompositeHealthCheckHealth"
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}/getHealth",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            },
            "compositeHealthCheck": {
              "description": "Name of the CompositeHealthCheck resource to get health for.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Name of the project scoping this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.regionCompositeHealthChecks.getHealth",
          "parameterOrder": [
            "project",
            "region",
            "compositeHealthCheck"
          ],
          "description": "Gets the most recent health check results for this\nregional CompositeHealthCheck.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "aggregatedList": {
          "id": "compute.regionCompositeHealthChecks.aggregatedList",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the project scoping this request."
            },
            "maxResults": {
              "default": "500",
              "location": "query",
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "serviceProjectNumber": {
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "type": "string"
            }
          },
          "description": "Retrieves the list of all CompositeHealthCheck resources (all\nregional) available to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "response": {
            "$ref": "CompositeHealthCheckAggregatedList"
          },
          "path": "projects/{project}/aggregated/compositeHealthChecks",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/compositeHealthChecks"
        },
        "get": {
          "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}",
          "parameterOrder": [
            "project",
            "region",
            "compositeHealthCheck"
          ],
          "response": {
            "$ref": "CompositeHealthCheck"
          },
          "id": "compute.regionCompositeHealthChecks.get",
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "compositeHealthCheck": {
              "location": "path",
              "required": true,
              "description": "Name of the CompositeHealthCheck resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified CompositeHealthCheck resource in the given region."
        },
        "list": {
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "default": "500"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "path": "projects/{project}/regions/{region}/compositeHealthChecks",
          "httpMethod": "GET",
          "description": "Lists the CompositeHealthChecks for a project in the given region.",
          "parameterOrder": [
            "project",
            "region"
          ],
          "id": "compute.regionCompositeHealthChecks.list",
          "response": {
            "$ref": "CompositeHealthCheckList"
          },
          "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "testIamPermissions": {
          "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "id": "compute.regionCompositeHealthChecks.testIamPermissions",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/compositeHealthChecks/{resource}/testIamPermissions",
          "parameters": {
            "region": {
              "type": "string",
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          }
        },
        "patch": {
          "id": "compute.regionCompositeHealthChecks.patch",
          "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "CompositeHealthCheck"
          },
          "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}",
          "description": "Updates the specified regional CompositeHealthCheck resource\nwith the data included in the request.  This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "compositeHealthCheck": {
              "location": "path",
              "required": true,
              "description": "Name of the CompositeHealthCheck to update. The name\nmust be 1-63 characters long, and comply with RFC1035.",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "region",
            "compositeHealthCheck"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "delete": {
          "id": "compute.regionCompositeHealthChecks.delete",
          "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}",
          "parameterOrder": [
            "project",
            "region",
            "compositeHealthCheck"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "compositeHealthCheck": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the CompositeHealthCheck resource to delete."
            }
          },
          "httpMethod": "DELETE",
          "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}",
          "description": "Deletes the specified CompositeHealthCheck in the given region",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        }
      }
    },
    "regionNetworkFirewallPolicies": {
      "methods": {
        "get": {
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "id": "compute.regionNetworkFirewallPolicies.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified network firewall policy.",
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}",
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "firewallPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the firewall policy to get."
            }
          },
          "response": {
            "$ref": "FirewallPolicy"
          }
        },
        "getAssociation": {
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation",
          "response": {
            "$ref": "FirewallPolicyAssociation"
          },
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Gets an association with the specified name.",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "parameters": {
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to which the queried association belongs.",
              "type": "string"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "name": {
              "location": "query",
              "description": "The name of the association to get from the firewall policy.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "id": "compute.regionNetworkFirewallPolicies.getAssociation"
        },
        "getRule": {
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "FirewallPolicyRule"
          },
          "parameters": {
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to which the queried rule belongs."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "priority": {
              "description": "The priority of the rule to get from the firewall policy.",
              "format": "int32",
              "type": "integer",
              "location": "query"
            }
          },
          "description": "Gets a rule of the specified priority.",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "id": "compute.regionNetworkFirewallPolicies.getRule"
        },
        "insert": {
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID\nso that if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies",
          "path": "projects/{project}/regions/{region}/firewallPolicies",
          "request": {
            "$ref": "FirewallPolicy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Creates a new network firewall policy in the specified project and region.",
          "id": "compute.regionNetworkFirewallPolicies.insert"
        },
        "removeRule": {
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule",
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule",
          "httpMethod": "POST",
          "id": "compute.regionNetworkFirewallPolicies.removeRule",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "priority": {
              "description": "The priority of the rule to remove from the firewall policy.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "firewallPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to update.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes a rule of the specified priority."
        },
        "addAssociation": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "associatedPolicyToBeReplaced": {
              "location": "query",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy associated with the target network to swap\nassociation with. This field is mutually exclusive with\n'replace_existing_association'."
            },
            "firewallPolicy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to update.",
              "location": "path",
              "required": true
            },
            "replaceExistingAssociation": {
              "description": "Indicates whether or not to replace it if an association already exists.\nThis is false by default, in which case an error will be returned if an\nassociation already exists.",
              "type": "boolean",
              "location": "query"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "id": "compute.regionNetworkFirewallPolicies.addAssociation",
          "request": {
            "$ref": "FirewallPolicyAssociation"
          },
          "description": "Inserts an association for the specified network firewall policy.",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation"
        },
        "testIamPermissions": {
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "compute.regionNetworkFirewallPolicies.testIamPermissions",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions"
        },
        "list": {
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies",
          "description": "Lists all the network firewall policies that have been configured\nfor the specified project in the given region.",
          "parameterOrder": [
            "project",
            "region"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "FirewallPolicyList"
          },
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "type": "integer"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionNetworkFirewallPolicies.list",
          "path": "projects/{project}/regions/{region}/firewallPolicies"
        },
        "getEffectiveFirewalls": {
          "description": "Returns the effective firewalls on a given network.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "network"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            },
            "network": {
              "location": "query",
              "required": true,
              "type": "string",
              "description": "Network reference"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls",
          "response": {
            "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse"
          },
          "id": "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls"
        },
        "delete": {
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "firewallPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to delete."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}",
          "description": "Deletes the specified network firewall policy.",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionNetworkFirewallPolicies.delete",
          "response": {
            "$ref": "Operation"
          }
        },
        "patchRule": {
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule",
          "request": {
            "$ref": "FirewallPolicyRule"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "firewallPolicy": {
              "description": "Name of the firewall policy to update.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "priority": {
              "type": "integer",
              "location": "query",
              "format": "int32",
              "description": "The priority of the rule to patch."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule",
          "description": "Patches a rule of the specified priority.",
          "id": "compute.regionNetworkFirewallPolicies.patchRule",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ]
        },
        "patchAssociation": {
          "description": "Updates an association for the specified network firewall policy.",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchAssociation",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchAssociation",
          "request": {
            "$ref": "FirewallPolicyAssociation"
          },
          "httpMethod": "POST",
          "id": "compute.regionNetworkFirewallPolicies.patchAssociation",
          "parameters": {
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to update.",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          }
        },
        "removeAssociation": {
          "description": "Removes an association for the specified network firewall policy.",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation",
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation",
          "httpMethod": "POST",
          "id": "compute.regionNetworkFirewallPolicies.removeAssociation",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "name": {
              "type": "string",
              "description": "Name for the association that will be removed.",
              "location": "query"
            },
            "firewallPolicy": {
              "description": "Name of the firewall policy to update.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "addRule": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "id": "compute.regionNetworkFirewallPolicies.addRule",
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule",
          "request": {
            "$ref": "FirewallPolicyRule"
          },
          "httpMethod": "POST",
          "parameters": {
            "minPriority": {
              "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.",
              "location": "query",
              "format": "int32",
              "type": "integer"
            },
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to update.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "maxPriority": {
              "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.",
              "format": "int32",
              "type": "integer",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Inserts a rule into a network firewall policy."
        },
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ],
          "httpMethod": "PATCH",
          "parameters": {
            "firewallPolicy": {
              "description": "Name of the firewall policy to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "request": {
            "$ref": "FirewallPolicy"
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Patches the specified network firewall policy.",
          "id": "compute.regionNetworkFirewallPolicies.patch",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}"
        },
        "setIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy",
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.regionNetworkFirewallPolicies.setIamPolicy",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy"
        },
        "cloneRules": {
          "id": "compute.regionNetworkFirewallPolicies.cloneRules",
          "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "description": "Name of the firewall policy to update.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "sourceFirewallPolicy": {
              "type": "string",
              "location": "query",
              "description": "The firewall policy from which to copy rules."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules",
          "httpMethod": "POST",
          "description": "Copies rules to the specified network firewall policy.",
          "parameterOrder": [
            "project",
            "region",
            "firewallPolicy"
          ]
        },
        "getIamPolicy": {
          "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Policy"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "id": "compute.regionNetworkFirewallPolicies.getIamPolicy",
          "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request."
            }
          },
          "httpMethod": "GET"
        }
      }
    },
    "targetTcpProxies": {
      "methods": {
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "resource"
          ],
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "id": "compute.targetTcpProxies.testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "flatPath": "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource."
        },
        "insert": {
          "flatPath": "projects/{project}/global/targetTcpProxies",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/targetTcpProxies",
          "description": "Creates a TargetTcpProxy resource in the specified project using\nthe data included in the request.",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "request": {
            "$ref": "TargetTcpProxy"
          },
          "id": "compute.targetTcpProxies.insert",
          "parameterOrder": [
            "project"
          ]
        },
        "list": {
          "response": {
            "$ref": "TargetTcpProxyList"
          },
          "path": "projects/{project}/global/targetTcpProxies",
          "description": "Retrieves the list of TargetTcpProxy resources\navailable to the specified project.",
          "flatPath": "projects/{project}/global/targetTcpProxies",
          "parameters": {
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "type": "integer",
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "id": "compute.targetTcpProxies.list",
          "parameterOrder": [
            "project"
          ]
        },
        "setProxyHeader": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
          "parameters": {
            "targetTcpProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
          "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
          "id": "compute.targetTcpProxies.setProxyHeader",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
          },
          "parameterOrder": [
            "project",
            "targetTcpProxy"
          ]
        },
        "delete": {
          "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "targetTcpProxy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the TargetTcpProxy resource to delete."
            }
          },
          "parameterOrder": [
            "project",
            "targetTcpProxy"
          ],
          "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified TargetTcpProxy resource.",
          "id": "compute.targetTcpProxies.delete"
        },
        "aggregatedList": {
          "id": "compute.targetTcpProxies.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/aggregated/targetTcpProxies",
          "response": {
            "$ref": "TargetTcpProxyAggregatedList"
          },
          "parameters": {
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Name of the project scoping this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string"
            },
            "maxResults": {
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "type": "integer"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "description": "Retrieves the list of all TargetTcpProxy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "flatPath": "projects/{project}/aggregated/targetTcpProxies"
        },
        "get": {
          "id": "compute.targetTcpProxies.get",
          "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "targetTcpProxy"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "targetTcpProxy": {
              "description": "Name of the TargetTcpProxy resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "description": "Returns the specified TargetTcpProxy resource.",
          "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
          "response": {
            "$ref": "TargetTcpProxy"
          }
        },
        "setBackendService": {
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetTcpProxiesSetBackendServiceRequest"
          },
          "description": "Changes the BackendService for TargetTcpProxy.",
          "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "targetTcpProxy": {
              "description": "Name of the TargetTcpProxy resource whose BackendService resource\nis to be set.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "targetTcpProxy"
          ],
          "httpMethod": "POST",
          "id": "compute.targetTcpProxies.setBackendService",
          "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService"
        }
      }
    },
    "globalPublicDelegatedPrefixes": {
      "methods": {
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Creates a global PublicDelegatedPrefix in the specified project using the\nparameters that are included in the request.",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/publicDelegatedPrefixes",
          "id": "compute.globalPublicDelegatedPrefixes.insert",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/publicDelegatedPrefixes",
          "parameterOrder": [
            "project"
          ],
          "request": {
            "$ref": "PublicDelegatedPrefix"
          }
        },
        "delete": {
          "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified global PublicDelegatedPrefix.",
          "parameters": {
            "publicDelegatedPrefix": {
              "type": "string",
              "description": "Name of the PublicDelegatedPrefix resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.globalPublicDelegatedPrefixes.delete",
          "parameterOrder": [
            "project",
            "publicDelegatedPrefix"
          ],
          "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}"
        },
        "patch": {
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "publicDelegatedPrefix": {
              "description": "Name of the PublicDelegatedPrefix resource to patch.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "PATCH",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "PublicDelegatedPrefix"
          },
          "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "id": "compute.globalPublicDelegatedPrefixes.patch",
          "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "description": "Patches the specified global PublicDelegatedPrefix resource with the data\nincluded in the request. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "parameterOrder": [
            "project",
            "publicDelegatedPrefix"
          ]
        },
        "list": {
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "default": "500",
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "flatPath": "projects/{project}/global/publicDelegatedPrefixes",
          "description": "Lists the global PublicDelegatedPrefixes for a project.",
          "response": {
            "$ref": "PublicDelegatedPrefixList"
          },
          "id": "compute.globalPublicDelegatedPrefixes.list",
          "path": "projects/{project}/global/publicDelegatedPrefixes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ]
        },
        "get": {
          "id": "compute.globalPublicDelegatedPrefixes.get",
          "response": {
            "$ref": "PublicDelegatedPrefix"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "publicDelegatedPrefix": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the PublicDelegatedPrefix resource to return.",
              "type": "string"
            }
          },
          "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "parameterOrder": [
            "project",
            "publicDelegatedPrefix"
          ],
          "description": "Returns the specified global PublicDelegatedPrefix resource."
        }
      }
    },
    "regionInstantSnapshots": {
      "methods": {
        "list": {
          "response": {
            "$ref": "InstantSnapshotList"
          },
          "path": "projects/{project}/regions/{region}/instantSnapshots",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots",
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Retrieves the list of InstantSnapshot resources contained within\nthe specified region.",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "type": "string",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "type": "integer",
              "default": "500"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "id": "compute.regionInstantSnapshots.list"
        },
        "delete": {
          "httpMethod": "DELETE",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "instantSnapshot": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the InstantSnapshot resource to delete.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request."
            }
          },
          "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}",
          "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting\na single instantSnapshot might not necessarily delete all the data on that\ninstantSnapshot. If any data on the instantSnapshot that is marked for\ndeletion is needed for subsequent instantSnapshots, the data will be moved\nto the next corresponding instantSnapshot.\n\nFor more information, seeDeleting\ninstantSnapshots.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "instantSnapshot"
          ],
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}",
          "id": "compute.regionInstantSnapshots.delete",
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}",
          "id": "compute.regionInstantSnapshots.get",
          "response": {
            "$ref": "InstantSnapshot"
          },
          "parameterOrder": [
            "project",
            "region",
            "instantSnapshot"
          ],
          "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified InstantSnapshot resource in the specified region.",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "instantSnapshot": {
              "location": "path",
              "required": true,
              "description": "Name of the InstantSnapshot resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "region": {
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            }
          }
        },
        "testIamPermissions": {
          "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions",
          "id": "compute.regionInstantSnapshots.testIamPermissions",
          "httpMethod": "POST",
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        },
        "insert": {
          "path": "projects/{project}/regions/{region}/instantSnapshots",
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Creates an instant snapshot in the specified region.",
          "request": {
            "$ref": "InstantSnapshot"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.regionInstantSnapshots.insert"
        },
        "getIamPolicy": {
          "id": "compute.regionInstantSnapshots.getIamPolicy",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "format": "int32",
              "type": "integer",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy",
          "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists."
        },
        "setIamPolicy": {
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Policy"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy",
          "id": "compute.regionInstantSnapshots.setIamPolicy",
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy"
        },
        "setLabels": {
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels",
          "description": "Sets the labels on a instantSnapshot in the given region. To learn more\nabout labels, read the Labeling\nResources documentation.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "type": "string",
              "description": "The region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels",
          "id": "compute.regionInstantSnapshots.setLabels"
        }
      }
    },
    "regionNotificationEndpoints": {
      "methods": {
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "notificationEndpoint": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the NotificationEndpoint resource to delete.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "notificationEndpoint"
          ],
          "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
          "id": "compute.regionNotificationEndpoints.delete",
          "description": "Deletes the specified NotificationEndpoint in the given region",
          "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}"
        },
        "testIamPermissions": {
          "id": "compute.regionNotificationEndpoints.testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions",
          "path": "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            }
          },
          "httpMethod": "POST"
        },
        "list": {
          "id": "compute.regionNotificationEndpoints.list",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "minimum": "0"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/notificationEndpoints",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "NotificationEndpointList"
          },
          "description": "Lists the NotificationEndpoints for a project in the given region.",
          "path": "projects/{project}/regions/{region}/notificationEndpoints"
        },
        "get": {
          "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
          "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
          "response": {
            "$ref": "NotificationEndpoint"
          },
          "parameterOrder": [
            "project",
            "region",
            "notificationEndpoint"
          ],
          "id": "compute.regionNotificationEndpoints.get",
          "httpMethod": "GET",
          "description": "Returns the specified NotificationEndpoint resource in the given region.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "notificationEndpoint": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NotificationEndpoint resource to return.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          }
        },
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/notificationEndpoints",
          "response": {
            "$ref": "NotificationEndpointAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionNotificationEndpoints.aggregatedList",
          "httpMethod": "GET",
          "parameters": {
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "location": "query",
              "type": "integer",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "includeAllScopes": {
              "type": "boolean",
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "serviceProjectNumber": {
              "location": "query",
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Name of the project scoping this request."
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "description": "Retrieves the list of all NotificationEndpoint resources,\nregional and global, available to the specified project.",
          "path": "projects/{project}/aggregated/notificationEndpoints",
          "parameterOrder": [
            "project"
          ]
        },
        "insert": {
          "description": "Create a NotificationEndpoint in the specified project in the given region\nusing the parameters that are included in the request.",
          "path": "projects/{project}/regions/{region}/notificationEndpoints",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "request": {
            "$ref": "NotificationEndpoint"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionNotificationEndpoints.insert",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/notificationEndpoints",
          "httpMethod": "POST"
        }
      }
    },
    "reservationSubBlocks": {
      "methods": {
        "getVersion": {
          "id": "compute.reservationSubBlocks.getVersion",
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/getVersion",
          "description": "Allows customers to get SBOM versions of a reservation subBlock.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ReservationSubBlocksGetVersionRequest"
          },
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSubBlock"
          ],
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}/getVersion",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "parentName": {
              "location": "path",
              "required": true,
              "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$",
              "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "reservationSubBlock": {
              "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "zone": {
              "type": "string",
              "description": "Name of the zone for this request. Zone name should conform to RFC1035.",
              "location": "path",
              "required": true
            }
          }
        },
        "get": {
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}",
          "httpMethod": "GET",
          "parameters": {
            "view": {
              "enum": [
                "SUB_BLOCK_VIEW_BASIC",
                "SUB_BLOCK_VIEW_FULL",
                "SUB_BLOCK_VIEW_UNSPECIFIED"
              ],
              "description": "View of the subBlock.",
              "enumDescriptions": [
                "This view includes basic information about the reservation sub block",
                "Includes detailed topology view.",
                "The default / unset value. The API will default to the BASIC view."
              ],
              "location": "query",
              "type": "string"
            },
            "reservationSubBlock": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "zone": {
              "description": "Name of the zone for this request. Zone name should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "parentName": {
              "type": "string",
              "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$",
              "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.reservationSubBlocks.get",
          "response": {
            "$ref": "ReservationSubBlocksGetResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves information about the specified reservation subBlock.",
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}",
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSubBlock"
          ]
        },
        "list": {
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request. Zone name should conform to RFC1035."
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "maxResults": {
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0"
            },
            "parentName": {
              "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}",
              "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone",
            "parentName"
          ],
          "id": "compute.reservationSubBlocks.list",
          "description": "Retrieves a list of reservation subBlocks under a single reservation.",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks",
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks",
          "response": {
            "$ref": "ReservationSubBlocksListResponse"
          }
        },
        "getIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "parameterOrder": [
            "project",
            "zone",
            "parentResource",
            "resource"
          ],
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{resource}/getIamPolicy",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "format": "int32",
              "type": "integer",
              "location": "query"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            },
            "parentResource": {
              "description": "Name or id of parent resource of the resource for this request.",
              "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "GET",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.reservationSubBlocks.getIamPolicy"
        },
        "setIamPolicy": {
          "request": {
            "$ref": "ZoneSetNestedPolicyRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/setIamPolicy",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "parentResource": {
              "description": "Name or id of parent resource of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "parentResource",
            "resource"
          ],
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{resource}/setIamPolicy",
          "id": "compute.reservationSubBlocks.setIamPolicy",
          "response": {
            "$ref": "Policy"
          }
        },
        "performMaintenance": {
          "id": "compute.reservationSubBlocks.performMaintenance",
          "parameters": {
            "reservationSubBlock": {
              "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "parentName": {
              "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "description": "Name of the zone for this request. Zone name should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "description": "Allows customers to perform maintenance on a reservation subBlock",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}/performMaintenance",
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSubBlock"
          ],
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/performMaintenance",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "testIamPermissions": {
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "id": "compute.reservationSubBlocks.testIamPermissions",
          "parameterOrder": [
            "project",
            "zone",
            "parentResource",
            "resource"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "parentResource": {
              "type": "string",
              "description": "Name or id of parent resource of the resource for this request.",
              "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{resource}/testIamPermissions",
          "path": "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/testIamPermissions"
        },
        "reportFaulty": {
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/reportFaulty",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}/reportFaulty",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSubBlock"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "reservationSubBlock": {
              "type": "string",
              "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "parentName": {
              "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request. Zone name should conform to RFC1035."
            }
          },
          "request": {
            "$ref": "ReservationSubBlocksReportFaultyRequest"
          },
          "id": "compute.reservationSubBlocks.reportFaulty",
          "description": "Allows customers to report a faulty subBlock."
        }
      }
    },
    "forwardingRules": {
      "methods": {
        "aggregatedList": {
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "location": "query"
            },
            "includeAllScopes": {
              "type": "boolean",
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "parameterOrder": [
            "project"
          ],
          "id": "compute.forwardingRules.aggregatedList",
          "description": "Retrieves an aggregated list of forwarding rules.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "path": "projects/{project}/aggregated/forwardingRules",
          "flatPath": "projects/{project}/aggregated/forwardingRules",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "ForwardingRuleAggregatedList"
          }
        },
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/forwardingRules",
          "path": "projects/{project}/regions/{region}/forwardingRules",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ForwardingRule"
          },
          "description": "Creates a ForwardingRule resource in the specified project and region using\nthe data included in the request.",
          "id": "compute.forwardingRules.insert"
        },
        "get": {
          "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "forwardingRule"
          ],
          "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
          "response": {
            "$ref": "ForwardingRule"
          },
          "httpMethod": "GET",
          "parameters": {
            "view": {
              "enum": [
                "BASIC",
                "FULL"
              ],
              "enumDescriptions": [
                "The default view of a ForwardingRule, which includes the basic fields.",
                "The full view, including the ForwardingRule.`attached_extensions` field."
              ],
              "location": "query",
              "type": "string"
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "forwardingRule": {
              "location": "path",
              "required": true,
              "description": "Name of the ForwardingRule resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "description": "Returns the specified ForwardingRule resource.",
          "id": "compute.forwardingRules.get"
        },
        "setTarget": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.forwardingRules.setTarget",
          "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
          "request": {
            "$ref": "TargetReference"
          },
          "parameterOrder": [
            "project",
            "region",
            "forwardingRule"
          ],
          "description": "Changes target URL for forwarding rule. The new target should be of the\nsame type as the old target.",
          "parameters": {
            "forwardingRule": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the ForwardingRule resource in which target is to be set.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget"
        },
        "setLabels": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
          "id": "compute.forwardingRules.setLabels",
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The region for this request.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
          "description": "Sets the labels on the specified resource. To learn more about labels,\nread the \nLabeling Resources documentation.",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ]
        },
        "list": {
          "id": "compute.forwardingRules.list",
          "path": "projects/{project}/regions/{region}/forwardingRules",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "type": "integer",
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ForwardingRuleList"
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/forwardingRules",
          "description": "Retrieves a list of ForwardingRule resources available to the specified\nproject and region."
        },
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "ForwardingRule"
          },
          "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
          "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
          "parameterOrder": [
            "project",
            "region",
            "forwardingRule"
          ],
          "id": "compute.forwardingRules.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "description": "Updates the specified forwarding rule with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules. Currently, you can only\npatch the network_tier field.",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            },
            "forwardingRule": {
              "type": "string",
              "description": "Name of the ForwardingRule resource to patch.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          }
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
          "parameterOrder": [
            "project",
            "region",
            "forwardingRule"
          ],
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "forwardingRule": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the ForwardingRule resource to delete.",
              "type": "string"
            }
          },
          "id": "compute.forwardingRules.delete",
          "httpMethod": "DELETE",
          "description": "Deletes the specified ForwardingRule resource.",
          "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}"
        }
      }
    },
    "regionDisks": {
      "methods": {
        "stopGroupAsyncReplication": {
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "DisksStopGroupAsyncReplicationResource"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "type": "string",
              "description": "The name of the region for this request. This must be the region of the\nprimary or secondary disks in the consistency group.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication",
          "id": "compute.regionDisks.stopGroupAsyncReplication",
          "description": "Stops asynchronous replication for a consistency group of disks.\nCan be invoked either in the primary or secondary scope."
        },
        "list": {
          "description": "Retrieves the list of persistent disks contained within\nthe specified region.",
          "id": "compute.regionDisks.list",
          "path": "projects/{project}/regions/{region}/disks",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "DiskList"
          },
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "type": "integer",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/disks"
        },
        "setIamPolicy": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            }
          },
          "id": "compute.regionDisks.setIamPolicy",
          "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
          "response": {
            "$ref": "Policy"
          }
        },
        "createSnapshot": {
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
          "description": "Creates a snapshot of a specified persistent disk. For regular snapshot\ncreation, consider using snapshots.insert\ninstead, as that method supports more features, such as creating snapshots\nin a project different from the source disk project.",
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionDisks.createSnapshot",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "Snapshot"
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "region": {
              "type": "string",
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "disk": {
              "type": "string",
              "description": "Name of the regional persistent disk to snapshot.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          }
        },
        "startAsyncReplication": {
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "type": "string"
            },
            "disk": {
              "description": "The name of the persistent disk.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "description": "Starts asynchronous replication.\nMust be invoked on the primary disk.",
          "path": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionDisks.startAsyncReplication",
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "RegionDisksStartAsyncReplicationRequest"
          }
        },
        "updateKmsKey": {
          "request": {
            "$ref": "RegionDiskUpdateKmsKeyRequest"
          },
          "description": "Rotates the customer-managed\nencryption key to the latest version for the specified persistent disk.",
          "path": "projects/{project}/regions/{region}/disks/{disk}/updateKmsKey",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "disk": {
              "description": "Name of the Disk resource, should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}/updateKmsKey",
          "id": "compute.regionDisks.updateKmsKey"
        },
        "addResourcePolicies": {
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "description": "Adds existing resource policies to a regional disk. You can only add one\npolicy which will be applied to this disk for scheduling snapshot\ncreation.",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request."
            },
            "disk": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The disk name for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
          "request": {
            "$ref": "RegionDisksAddResourcePoliciesRequest"
          },
          "id": "compute.regionDisks.addResourcePolicies",
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "path": "projects/{project}/regions/{region}/disks/{disk}",
          "id": "compute.regionDisks.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns a specified regional persistent disk.",
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}",
          "httpMethod": "GET",
          "response": {
            "$ref": "Disk"
          },
          "parameters": {
            "disk": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the regional persistent disk to return.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          }
        },
        "setLabels": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the labels on the target regional disk.",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The region for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionDisks.setLabels",
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels"
        },
        "getIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
          "id": "compute.regionDisks.getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "httpMethod": "GET",
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "location": "query"
            },
            "region": {
              "type": "string",
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy"
        },
        "resize": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize",
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "id": "compute.regionDisks.resize",
          "path": "projects/{project}/regions/{region}/disks/{disk}/resize",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "RegionDisksResizeRequest"
          },
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region for this request."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "The project ID for this request.",
              "type": "string"
            },
            "disk": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the regional persistent disk."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Resizes the specified regional persistent disk."
        },
        "bulkInsert": {
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.regionDisks.bulkInsert",
          "path": "projects/{project}/regions/{region}/disks/bulkInsert",
          "request": {
            "$ref": "BulkInsertDiskResource"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Bulk create a set of disks.",
          "flatPath": "projects/{project}/regions/{region}/disks/bulkInsert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "delete": {
          "path": "projects/{project}/regions/{region}/disks/{disk}",
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}",
          "id": "compute.regionDisks.delete",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "disk": {
              "type": "string",
              "pattern": "\\S{1,66}",
              "description": "Name of the regional persistent disk to delete.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true
            }
          },
          "description": "Deletes the specified regional persistent disk. Deleting a regional disk\nremoves all the replicas of its data permanently and is irreversible.\nHowever, deleting a disk does not delete anysnapshots\npreviously made from the disk. You must separatelydelete\nsnapshots.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "update": {
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "parameters": {
            "updateMask": {
              "type": "string",
              "location": "query",
              "format": "google-fieldmask",
              "description": "update_mask indicates fields to be updated as part of this request."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "disk": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The disk name for this request.",
              "location": "path",
              "required": true
            },
            "paths": {
              "type": "string",
              "location": "query",
              "repeated": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/disks/{disk}",
          "request": {
            "$ref": "Disk"
          },
          "id": "compute.regionDisks.update",
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}",
          "description": "Update the specified disk with the data included in the request. Update is\nperformed only on selected fields included as part of update-mask."
        },
        "removeResourcePolicies": {
          "httpMethod": "POST",
          "parameters": {
            "disk": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The disk name for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "id": "compute.regionDisks.removeResourcePolicies",
          "description": "Removes resource policies from a regional disk.",
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
          "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "RegionDisksRemoveResourcePoliciesRequest"
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "insert": {
          "description": "Creates a persistent regional disk in the specified project using the data\nincluded in the request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "sourceImage": {
              "location": "query",
              "description": "Source image to restore onto a disk. This field is optional.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/disks",
          "id": "compute.regionDisks.insert",
          "request": {
            "$ref": "Disk"
          },
          "flatPath": "projects/{project}/regions/{region}/disks"
        },
        "stopAsyncReplication": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication",
          "path": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request."
            },
            "disk": {
              "description": "The name of the persistent disk.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region",
            "disk"
          ],
          "id": "compute.regionDisks.stopAsyncReplication",
          "description": "Stops asynchronous replication.\nCan be invoked either on the primary or on the secondary disk."
        },
        "testIamPermissions": {
          "id": "compute.regionDisks.testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        }
      }
    },
    "httpsHealthChecks": {
      "methods": {
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.httpsHealthChecks.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "HttpsHealthCheck"
          },
          "flatPath": "projects/{project}/global/httpsHealthChecks",
          "description": "Creates a HttpsHealthCheck resource in the specified project using the data\nincluded in the request.",
          "httpMethod": "POST",
          "path": "projects/{project}/global/httpsHealthChecks",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          }
        },
        "patch": {
          "description": "Updates a HttpsHealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "httpsHealthCheck"
          ],
          "httpMethod": "PATCH",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.httpsHealthChecks.patch",
          "parameters": {
            "httpsHealthCheck": {
              "type": "string",
              "description": "Name of the HttpsHealthCheck resource to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "request": {
            "$ref": "HttpsHealthCheck"
          }
        },
        "get": {
          "id": "compute.httpsHealthChecks.get",
          "response": {
            "$ref": "HttpsHealthCheck"
          },
          "parameterOrder": [
            "project",
            "httpsHealthCheck"
          ],
          "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "httpsHealthCheck": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the HttpsHealthCheck resource to return.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "description": "Returns the specified HttpsHealthCheck resource."
        },
        "list": {
          "id": "compute.httpsHealthChecks.list",
          "path": "projects/{project}/global/httpsHealthChecks",
          "description": "Retrieves the list of HttpsHealthCheck resources available to the specified\nproject.",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "HttpsHealthCheckList"
          },
          "parameters": {
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "location": "query"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/httpsHealthChecks"
        },
        "testIamPermissions": {
          "id": "compute.httpsHealthChecks.testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "httpMethod": "POST",
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "flatPath": "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions"
        },
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "description": "Deletes the specified HttpsHealthCheck resource.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "httpsHealthCheck": {
              "type": "string",
              "description": "Name of the HttpsHealthCheck resource to delete.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "id": "compute.httpsHealthChecks.delete",
          "parameterOrder": [
            "project",
            "httpsHealthCheck"
          ]
        },
        "update": {
          "description": "Updates a HttpsHealthCheck resource in the specified project using the data\nincluded in the request.",
          "request": {
            "$ref": "HttpsHealthCheck"
          },
          "id": "compute.httpsHealthChecks.update",
          "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "parameterOrder": [
            "project",
            "httpsHealthCheck"
          ],
          "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PUT",
          "parameters": {
            "httpsHealthCheck": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the HttpsHealthCheck resource to update.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          }
        }
      }
    },
    "instanceGroupManagers": {
      "methods": {
        "insert": {
          "parameters": {
            "zone": {
              "description": "The name of the zone\nwhere you want to create the managed instance group.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
          "httpMethod": "POST",
          "description": "Creates a managed instance group using the information that you specify\nin the request. After the group is created, instances in the group are\ncreated using the specified instance template.\nThis operation is marked as DONE when the group is created\neven if the instances in the group have not yet been created. You\nmust separately verify the status of the individual instances with thelistmanagedinstances\nmethod.\n\nA managed instance group can have up to 1000 VM instances per group. Please\ncontact Cloud Support if you need an increase in\nthis limit.",
          "request": {
            "$ref": "InstanceGroupManager"
          },
          "id": "compute.instanceGroupManagers.insert",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "listErrors": {
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "description": "The name of thezone where the managed\ninstance group is located.\nIt should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.\nIt must be a string that meets the requirements in RFC1035, or an\nunsigned long integer: must match regexp pattern:\n(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
          "response": {
            "$ref": "InstanceGroupManagersListErrorsResponse"
          },
          "description": "Lists all errors thrown by actions on instances for a given managed\ninstance group. The filter and orderBy query\nparameters are not supported.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
          "id": "compute.instanceGroupManagers.listErrors"
        },
        "stopInstances": {
          "id": "compute.instanceGroupManagers.stopInstances",
          "parameters": {
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group.",
              "type": "string"
            },
            "zone": {
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "noGracefulShutdown": {
              "default": "false",
              "type": "boolean",
              "location": "query",
              "description": "When set, graceful shutdown is skipped for instance stopping even if it's\nconfigured for the instances."
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/stopInstances",
          "description": "Flags the specified instances in the managed instance group to be\nimmediately stopped. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetStoppedSize\nof the managed instance group by the number of instances that you stop.\nThe stopInstances operation is marked DONE if\nthe stopInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTOPPING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays stopping the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is stopped.\n\nStopped instances can be started using the startInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "InstanceGroupManagersStopInstancesRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/stopInstances"
        },
        "aggregatedList": {
          "id": "compute.instanceGroupManagers.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/aggregated/instanceGroupManagers",
          "parameters": {
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "default": "500",
              "type": "integer"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/instanceGroupManagers",
          "description": "Retrieves the list of managed instance groups and groups them by zone.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "response": {
            "$ref": "InstanceGroupManagerAggregatedList"
          }
        },
        "deletePerInstanceConfigs": {
          "description": "Deletes selected per-instance configurations for the managed instance\ngroup.",
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.\nIt should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "description": "The name of thezone\nwhere the managed instance\ngroup is located.\nIt should conform to RFC1035.",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
          "request": {
            "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "get": {
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
          "response": {
            "$ref": "InstanceGroupManager"
          },
          "id": "compute.instanceGroupManagers.get",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "description": "Returns all of the details about the specified managed instance group.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "resumeInstances": {
          "id": "compute.instanceGroupManagers.resumeInstances",
          "httpMethod": "POST",
          "parameters": {
            "instanceGroupManager": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of thezone where the managed\ninstance group is located.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resumeInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Flags the specified instances in the managed instance group to be\nresumed. This method increases thetargetSize and decreases the targetSuspendedSize\nof the managed instance group by the number of instances that you resume.\nThe resumeInstances operation is marked DONE if\nthe resumeInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theRESUMING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are suspended. For\nexample, if an instance was previously suspended using the suspendInstances\nmethod, it can be resumed using the resumeInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are resumed.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "request": {
            "$ref": "InstanceGroupManagersResumeInstancesRequest"
          },
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resumeInstances"
        },
        "delete": {
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
          "id": "compute.instanceGroupManagers.delete",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of thezone where the managed\ninstance group is located.",
              "type": "string"
            },
            "noGracefulShutdown": {
              "default": "false",
              "location": "query",
              "type": "boolean",
              "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances."
            },
            "instanceGroupManager": {
              "type": "string",
              "description": "The name of the managed instance group to delete.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified managed instance group and all of the instances\nin that group. Note that the instance group must not belong to a\nbackend service. Read\nDeleting an instance group for more information.",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ]
        },
        "listManagedInstances": {
          "id": "compute.instanceGroupManagers.listManagedInstances",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
          "description": "Lists all of the instances in the managed instance group. Each instance\nin the list has a currentAction, which indicates the action\nthat the managed instance group is performing on the instance. For example,\nif the group is still creating an instance, the currentAction\nis CREATING. If a previous action failed, the\nlist displays the errors for that failed action. The orderBy\nquery parameter is not supported. The `pageToken` query parameter is\nsupported only if the group's `listManagedInstancesResults` field is set\nto `PAGINATED`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "httpMethod": "POST",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "instanceGroupManager": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group."
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "maxResults": {
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "default": "500"
            },
            "zone": {
              "description": "The name of thezone where the managed\ninstance group is located.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            }
          },
          "response": {
            "$ref": "InstanceGroupManagersListManagedInstancesResponse"
          }
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
          "description": "Retrieves a list of managed instance groups that are contained within the\nspecified project and zone.",
          "httpMethod": "GET",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers",
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "zone": {
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located.",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0",
              "type": "integer"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "response": {
            "$ref": "InstanceGroupManagerList"
          },
          "id": "compute.instanceGroupManagers.list"
        },
        "resize": {
          "httpMethod": "POST",
          "parameters": {
            "instanceGroupManager": {
              "type": "string",
              "description": "The name of the managed instance group.",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "The name of thezone where the managed\ninstance group is located.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "size": {
              "type": "integer",
              "description": "The number of running instances that the managed instance group should\nmaintain at any given time. The group automatically adds or removes\ninstances to maintain the number of instances specified by this parameter.",
              "format": "int32",
              "location": "query",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "id": "compute.instanceGroupManagers.resize",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager",
            "size"
          ],
          "description": "Resizes the managed instance group. If you increase the size, the group\ncreates new instances using the current instance template. If you decrease\nthe size, the group deletes instances. The resize operation is markedDONE when the resize actions are scheduled even if the group\nhas not yet added or deleted any instances. You must separately\nverify the status of the creating or deleting\nactions with thelistmanagedinstances\nmethod.\n\nWhen resizing down, the instance group arbitrarily chooses the order in\nwhich VMs are deleted. The group takes into account some VM attributes when\nmaking the selection including:\n\n+ The status of the VM instance.\n+ The health of the VM instance.\n+ The instance template version the VM is based on.\n+ For regional managed instance groups, the location of the VM instance.\n\nThis list is subject to change.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize"
        },
        "startInstances": {
          "parameters": {
            "instanceGroupManager": {
              "type": "string",
              "description": "The name of the managed instance group.",
              "location": "path",
              "required": true
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "request": {
            "$ref": "InstanceGroupManagersStartInstancesRequest"
          },
          "description": "Flags the specified instances in the managed instance group to be\nstarted. This method increases thetargetSize and decreases the targetStoppedSize\nof the managed instance group by the number of instances that you start.\nThe startInstances operation is marked DONE if\nthe startInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTARTING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are stopped. For\nexample, if an instance was previously stopped using the stopInstances\nmethod, it can be started using the startInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are started.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/startInstances",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/startInstances",
          "id": "compute.instanceGroupManagers.startInstances",
          "response": {
            "$ref": "Operation"
          }
        },
        "setTargetPools": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "id": "compute.instanceGroupManagers.setTargetPools",
          "description": "Modifies the target pools to which all instances in this managed instance\ngroup are assigned. The target pools automatically apply to all of the\ninstances in the managed instance group. This operation is markedDONE when you make the request even if the instances have not\nyet been added to their target pools. The change might take some time to\napply to all of the instances in the group depending on the size of the\ngroup.",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located."
            }
          },
          "request": {
            "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools"
        },
        "setInstanceTemplate": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instanceGroupManagers.setInstanceTemplate",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
          "description": "Specifies the instance template to use when creating new instances in this\ngroup. The templates for existing instances in the group do not change\nunless you run recreateInstances, runapplyUpdatesToInstances, or set the group'supdatePolicy.type to PROACTIVE.",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "instanceGroupManager": {
              "type": "string",
              "description": "The name of the managed instance group.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located."
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "request": {
            "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
          }
        },
        "suspendInstances": {
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/suspendInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Flags the specified instances in the managed instance group to be\nimmediately suspended. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetSuspendedSize\nof the managed instance group by the number of instances that you suspend.\nThe suspendInstances operation is marked DONE if\nthe suspendInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSUSPENDING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays suspension of the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is suspended.\n\nSuspended instances can be resumed using the resumeInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "request": {
            "$ref": "InstanceGroupManagersSuspendInstancesRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/suspendInstances",
          "id": "compute.instanceGroupManagers.suspendInstances",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of thezone where the managed\ninstance group is located.",
              "type": "string"
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          }
        },
        "recreateInstances": {
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located."
            },
            "noGracefulShutdown": {
              "description": "When set, graceful shutdown is skipped for instance recreation even if it's\nconfigured for the instances.",
              "type": "boolean",
              "location": "query",
              "default": "false"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
          "id": "compute.instanceGroupManagers.recreateInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Flags the specified VM instances in the managed instance group to be\nimmediately recreated. Each instance is recreated using the group's current\nconfiguration. This operation is marked as DONE when the flag\nis set even if the instances have not yet been recreated. You must\nseparately verify the status of each instance by checking itscurrentAction field; for more information, see Checking\nthe status of managed instances.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
          "request": {
            "$ref": "InstanceGroupManagersRecreateInstancesRequest"
          }
        },
        "createInstances": {
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "instanceGroupManager": {
              "type": "string",
              "description": "The name of the managed instance group.\nIt should conform to RFC1035.",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "InstanceGroupManagersCreateInstancesRequest"
          },
          "id": "compute.instanceGroupManagers.createInstances",
          "description": "Creates instances with per-instance configurations in this managed instance\ngroup. Instances are created using the current instance template. Thecreate instances operation is marked DONE if thecreateInstances request is successful. The underlying actions\ntake additional time. You must separately verify the status of thecreating or actions with the listmanagedinstances\nmethod."
        },
        "deleteInstances": {
          "parameters": {
            "noGracefulShutdown": {
              "location": "query",
              "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances.",
              "type": "boolean",
              "default": "false"
            },
            "instanceGroupManager": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of thezone where the managed\ninstance group is located."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instanceGroupManagers.deleteInstances",
          "description": "Flags the specified instances in the managed instance group for immediate\ndeletion. The instances are also removed from any target\npools of which they were a member. This method reduces thetargetSize of the managed instance group by the number of\ninstances that you delete. This operation is marked as DONE\nwhen the action is scheduled even if the instances are still being deleted.\nYou must separately verify the status of the deleting action\nwith thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "request": {
            "$ref": "InstanceGroupManagersDeleteInstancesRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances"
        },
        "applyUpdatesToInstances": {
          "description": "Applies changes to selected instances on the managed instance group.\nThis method can be used to apply new overrides and/or new versions.",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
          "httpMethod": "POST",
          "request": {
            "$ref": "InstanceGroupManagersApplyUpdatesRequest"
          },
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of thezone\nwhere the managed instance group is located. Should conform to RFC1035."
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group, should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "updatePerInstanceConfigs": {
          "request": {
            "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
          },
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
          "description": "Inserts or updates per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "instanceGroupManager": {
              "type": "string",
              "description": "The name of the managed instance group.\nIt should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
          "response": {
            "$ref": "Operation"
          }
        },
        "patch": {
          "description": "Updates a managed instance group using the information that you specify\nin the request.\nThis operation is marked as DONE when the group is patched\neven if the instances in the group are still in the process of being\npatched. You must separately verify the status of the individual instances\nwith thelistManagedInstances\nmethod. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.\n\nIf you update your group to specify a new template or instance\nconfiguration, it's possible that your intended specification for each VM\nin the group is different from the current state of that VM. To learn how\nto apply an updated configuration to the VMs in a MIG, seeUpdating instances in\na MIG.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "instanceGroupManager": {
              "description": "The name of the instance group manager.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone where\nyou want to create the managed instance group.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "request": {
            "$ref": "InstanceGroupManager"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instanceGroupManagers.patch",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "patchPerInstanceConfigs": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "request": {
            "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group.\nIt should conform to RFC1035.",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Inserts or patches per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs"
        },
        "abandonInstances": {
          "request": {
            "$ref": "InstanceGroupManagersAbandonInstancesRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
          "id": "compute.instanceGroupManagers.abandonInstances",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of thezone where the managed\ninstance group is located."
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "description": "Flags the specified instances to be removed from the\nmanaged instance group. Abandoning an instance does not delete the\ninstance, but it does remove the instance from any target pools that are\napplied by the managed instance group. This method reduces thetargetSize of the managed instance group by the\nnumber of instances that you abandon. This operation is marked asDONE when the action is scheduled even if the instances have\nnot yet been removed from the group. You must separately verify the\nstatus of the abandoning action with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ]
        },
        "listPerInstanceConfigs": {
          "response": {
            "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Lists all of the per-instance configurations defined for the managed\ninstance group. The orderBy query parameter is not supported.",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
          "httpMethod": "POST",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the managed instance group. It should conform to RFC1035."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "location": "query",
              "format": "uint32",
              "default": "500",
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            }
          }
        }
      }
    },
    "wireGroups": {
      "methods": {
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "wireGroup": {
              "type": "string",
              "description": "Name of the wire group resource to return.",
              "location": "path",
              "required": true
            },
            "crossSiteNetwork": {
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "description": "Gets the specified wire group resource in the given scope.",
          "response": {
            "$ref": "WireGroup"
          },
          "id": "compute.wireGroups.get",
          "parameterOrder": [
            "project",
            "crossSiteNetwork",
            "wireGroup"
          ],
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}"
        },
        "insert": {
          "parameters": {
            "crossSiteNetwork": {
              "type": "string",
              "location": "path",
              "required": true
            },
            "validateOnly": {
              "type": "boolean",
              "location": "query",
              "description": "[Input Only] Validate the new configuration, but don't create it."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "id": "compute.wireGroups.insert",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "crossSiteNetwork"
          ],
          "request": {
            "$ref": "WireGroup"
          },
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups",
          "description": "Creates a wire group in the specified project in the given scope\nusing the parameters that are included in the request.",
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups"
        },
        "list": {
          "response": {
            "$ref": "WireGroupList"
          },
          "description": "Lists the wire groups for a project in the given scope.",
          "parameterOrder": [
            "project",
            "crossSiteNetwork"
          ],
          "parameters": {
            "crossSiteNetwork": {
              "type": "string",
              "location": "path",
              "required": true
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "format": "uint32"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups",
          "httpMethod": "GET",
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.wireGroups.list"
        },
        "delete": {
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder"
            },
            "wireGroup": {
              "location": "path",
              "required": true,
              "description": "Name of the wire group resource to delete.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "crossSiteNetwork": {
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "crossSiteNetwork",
            "wireGroup"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.wireGroups.delete",
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}",
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}",
          "description": "Deletes the specified wire group in the given scope."
        },
        "patch": {
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}",
          "id": "compute.wireGroups.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "crossSiteNetwork",
            "wireGroup"
          ],
          "description": "Updates the specified wire group resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "WireGroup"
          },
          "parameters": {
            "updateMask": {
              "type": "string",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "location": "query",
              "format": "google-fieldmask"
            },
            "crossSiteNetwork": {
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "wireGroup": {
              "type": "string",
              "description": "Name of the WireGroups resource to patch.",
              "location": "path",
              "required": true
            },
            "validateOnly": {
              "description": "[Input Only] Validate the new configuration, but don't update it.",
              "location": "query",
              "type": "boolean"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}",
          "httpMethod": "PATCH"
        }
      }
    },
    "instanceGroupManagerResizeRequests": {
      "methods": {
        "delete": {
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager",
            "resizeRequest"
          ],
          "description": "Deletes the specified, inactive resize request. Requests that are still\nactive cannot be deleted. Deleting request does not delete instances that\nwere provisioned previously.",
          "id": "compute.instanceGroupManagerResizeRequests.delete",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.\nThe name should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resizeRequest": {
              "type": "string",
              "description": "The name of the resize request to delete.\nThe name should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located. The name should conform to RFC1035.",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "insert": {
          "id": "compute.instanceGroupManagerResizeRequests.insert",
          "description": "Creates a new resize request that starts provisioning VMs immediately\nor queues VM creation.",
          "request": {
            "$ref": "InstanceGroupManagerResizeRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "parameters": {
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group to which the resize request will\nbe added.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string"
            },
            "zone": {
              "description": "The name of thezone where the managed\ninstance group is located and where the resize request will be created.\nName should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests"
        },
        "get": {
          "response": {
            "$ref": "InstanceGroupManagerResizeRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}",
          "parameters": {
            "zone": {
              "type": "string",
              "description": "Name of the href=\"/compute/docs/regions-zones/#available\"\u003ezone\nscoping this request. Name should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "resizeRequest": {
              "description": "The name of the resize request.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager",
            "resizeRequest"
          ],
          "description": "Returns all of the details about the specified resize request.",
          "id": "compute.instanceGroupManagerResizeRequests.get"
        },
        "cancel": {
          "id": "compute.instanceGroupManagerResizeRequests.cancel",
          "parameters": {
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group.\nThe name should conform to RFC1035 or be a resource ID.",
              "type": "string"
            },
            "resizeRequest": {
              "description": "The name of the resize request to cancel.\nThe name should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located. The name should conform to RFC1035."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "description": "Cancels the specified resize request and removes it from the queue.\nCancelled resize request does no longer wait for the resources to be\nprovisioned. Cancel is only possible for requests that are accepted in the\nqueue.",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager",
            "resizeRequest"
          ],
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel"
        },
        "list": {
          "response": {
            "$ref": "InstanceGroupManagerResizeRequestsListResponse"
          },
          "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests",
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "zone": {
              "type": "string",
              "description": "The name of thezone where the managed\ninstance group is located. The name should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "location": "query"
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group. The name should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroupManager"
          ],
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of resize requests that are contained in the\nmanaged instance group.",
          "id": "compute.instanceGroupManagerResizeRequests.list"
        }
      }
    },
    "sslCertificates": {
      "methods": {
        "delete": {
          "id": "compute.sslCertificates.delete",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}",
          "description": "Deletes the specified SslCertificate resource.",
          "parameterOrder": [
            "project",
            "sslCertificate"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "sslCertificate": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the SslCertificate resource to delete."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/sslCertificates/{sslCertificate}"
        },
        "aggregatedList": {
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "location": "query",
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "location": "query",
              "format": "int64"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "type": "string",
              "description": "Name of the project scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "id": "compute.sslCertificates.aggregatedList",
          "httpMethod": "GET",
          "response": {
            "$ref": "SslCertificateAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/aggregated/sslCertificates",
          "description": "Retrieves the list of all SslCertificate resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/sslCertificates"
        },
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.sslCertificates.insert",
          "path": "projects/{project}/global/sslCertificates",
          "description": "Creates a SslCertificate resource in the specified project using the data\nincluded in the request.",
          "flatPath": "projects/{project}/global/sslCertificates",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "request": {
            "$ref": "SslCertificate"
          }
        },
        "list": {
          "path": "projects/{project}/global/sslCertificates",
          "parameters": {
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "minimum": "0"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "SslCertificateList"
          },
          "flatPath": "projects/{project}/global/sslCertificates",
          "id": "compute.sslCertificates.list",
          "description": "Retrieves the list of SslCertificate resources available to the specified\nproject.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ]
        },
        "get": {
          "id": "compute.sslCertificates.get",
          "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}",
          "response": {
            "$ref": "SslCertificate"
          },
          "description": "Returns the specified SslCertificate resource.",
          "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
          "parameterOrder": [
            "project",
            "sslCertificate"
          ],
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "sslCertificate": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the SslCertificate resource to return.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        }
      }
    },
    "interconnectLocations": {
      "methods": {
        "list": {
          "path": "projects/{project}/global/interconnectLocations",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "InterconnectLocationList"
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/interconnectLocations",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "default": "500",
              "location": "query",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "description": "Retrieves the list of interconnect locations available to the specified\nproject.",
          "id": "compute.interconnectLocations.list",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "get": {
          "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
          "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
          "description": "Returns the details for the specified interconnect location. Gets a list of\navailable interconnect locations by making a list() request.",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "interconnectLocation": {
              "description": "Name of the interconnect location to return.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "InterconnectLocation"
          },
          "id": "compute.interconnectLocations.get",
          "parameterOrder": [
            "project",
            "interconnectLocation"
          ]
        }
      }
    },
    "sslPolicies": {
      "methods": {
        "insert": {
          "path": "projects/{project}/global/sslPolicies",
          "flatPath": "projects/{project}/global/sslPolicies",
          "request": {
            "$ref": "SslPolicy"
          },
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Returns the specified SSL policy resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "id": "compute.sslPolicies.insert"
        },
        "list": {
          "response": {
            "$ref": "SslPoliciesList"
          },
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "type": "integer",
              "location": "query",
              "format": "uint32",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/global/sslPolicies",
          "httpMethod": "GET",
          "path": "projects/{project}/global/sslPolicies",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.sslPolicies.list",
          "description": "Lists all the SSL policies that have been configured for the specified\nproject."
        },
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/sslPolicies",
          "path": "projects/{project}/aggregated/sslPolicies",
          "description": "Retrieves the list of all SslPolicy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "response": {
            "$ref": "SslPoliciesAggregatedList"
          },
          "id": "compute.sslPolicies.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Name of the project scoping this request.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "location": "query",
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          }
        },
        "get": {
          "parameterOrder": [
            "project",
            "sslPolicy"
          ],
          "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
          "id": "compute.sslPolicies.get",
          "description": "Lists all of the ordered rules present in a single specified policy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "SslPolicy"
          },
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "sslPolicy": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035."
            }
          },
          "path": "projects/{project}/global/sslPolicies/{sslPolicy}"
        },
        "patch": {
          "parameterOrder": [
            "project",
            "sslPolicy"
          ],
          "httpMethod": "PATCH",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "sslPolicy": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "request": {
            "$ref": "SslPolicy"
          },
          "id": "compute.sslPolicies.patch",
          "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
          "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
          "description": "Patches the specified SSL policy with the data included in the request.",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "delete": {
          "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
          "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "sslPolicy"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "sslPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the SSL policy to delete. The name must be 1-63 characters long,\nand comply with RFC1035."
            }
          },
          "id": "compute.sslPolicies.delete",
          "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted\nonly if it is not in use by any TargetHttpsProxy or TargetSslProxy\nresources."
        },
        "listAvailableFeatures": {
          "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures",
          "response": {
            "$ref": "SslPoliciesListAvailableFeaturesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.sslPolicies.listAvailableFeatures",
          "httpMethod": "GET",
          "description": "Lists all features that can be specified in the SSL policy when using\ncustom profile.",
          "path": "projects/{project}/global/sslPolicies/listAvailableFeatures",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "location": "query",
              "default": "500",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "parameterOrder": [
            "project"
          ]
        }
      }
    },
    "packetMirrorings": {
      "methods": {
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.packetMirrorings.testIamPermissions"
        },
        "get": {
          "response": {
            "$ref": "PacketMirroring"
          },
          "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
          "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
          "parameterOrder": [
            "project",
            "region",
            "packetMirroring"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified PacketMirroring resource.",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            },
            "packetMirroring": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the PacketMirroring resource to return.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "compute.packetMirrorings.get"
        },
        "patch": {
          "request": {
            "$ref": "PacketMirroring"
          },
          "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
          "id": "compute.packetMirrorings.patch",
          "description": "Patches the specified PacketMirroring resource with the data included in\nthe request. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "httpMethod": "PATCH",
          "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "packetMirroring": {
              "description": "Name of the PacketMirroring resource to patch.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "packetMirroring"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "insert": {
          "description": "Creates a PacketMirroring resource in the specified project and region\nusing the data included in the request.",
          "request": {
            "$ref": "PacketMirroring"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/packetMirrorings",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/packetMirrorings",
          "id": "compute.packetMirrorings.insert"
        },
        "aggregatedList": {
          "description": "Retrieves an aggregated list of packetMirrorings.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "PacketMirroringAggregatedList"
          },
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/packetMirrorings",
          "id": "compute.packetMirrorings.aggregatedList",
          "path": "projects/{project}/aggregated/packetMirrorings",
          "parameters": {
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "type": "integer",
              "minimum": "0",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "serviceProjectNumber": {
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "location": "query",
              "format": "int64"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            }
          },
          "httpMethod": "GET"
        },
        "list": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Retrieves a list of PacketMirroring resources available to the specified\nproject and region.",
          "flatPath": "projects/{project}/regions/{region}/packetMirrorings",
          "id": "compute.packetMirrorings.list",
          "parameters": {
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "type": "integer",
              "default": "500"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "PacketMirroringList"
          },
          "path": "projects/{project}/regions/{region}/packetMirrorings",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "delete": {
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "packetMirroring": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the PacketMirroring resource to delete."
            }
          },
          "id": "compute.packetMirrorings.delete",
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "region",
            "packetMirroring"
          ],
          "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
          "description": "Deletes the specified PacketMirroring resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}"
        }
      }
    },
    "targetHttpsProxies": {
      "methods": {
        "delete": {
          "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
          "description": "Deletes the specified TargetHttpsProxy resource.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
          "id": "compute.targetHttpsProxies.delete",
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "targetHttpsProxy": {
              "type": "string",
              "description": "Name of the TargetHttpsProxy resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "DELETE"
        },
        "patch": {
          "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
          "httpMethod": "PATCH",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "targetHttpsProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the TargetHttpsProxy resource to patch."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ],
          "request": {
            "$ref": "TargetHttpsProxy"
          },
          "id": "compute.targetHttpsProxies.patch",
          "description": "Patches the specified TargetHttpsProxy resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}"
        },
        "setQuicOverride": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
          "description": "Sets the QUIC override policy for TargetHttpsProxy.",
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "targetHttpsProxy": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for.\nThe name should conform to RFC1035."
            }
          },
          "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
          "httpMethod": "POST",
          "request": {
            "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
          },
          "id": "compute.targetHttpsProxies.setQuicOverride",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "aggregatedList": {
          "httpMethod": "GET",
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Name of the project scoping this request.",
              "type": "string"
            },
            "serviceProjectNumber": {
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64"
            },
            "includeAllScopes": {
              "location": "query",
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "maxResults": {
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "default": "500",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          },
          "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "path": "projects/{project}/aggregated/targetHttpsProxies",
          "id": "compute.targetHttpsProxies.aggregatedList",
          "flatPath": "projects/{project}/aggregated/targetHttpsProxies",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "TargetHttpsProxyAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setUrlMap": {
          "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
          "request": {
            "$ref": "UrlMapReference"
          },
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ],
          "description": "Changes the URL map for TargetHttpsProxy.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.targetHttpsProxies.setUrlMap",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "targetHttpsProxy": {
              "description": "Name of the TargetHttpsProxy resource whose URL map is\nto be set.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "get": {
          "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
          "id": "compute.targetHttpsProxies.get",
          "response": {
            "$ref": "TargetHttpsProxy"
          },
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "targetHttpsProxy": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetHttpsProxy resource to return."
            }
          },
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ],
          "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified TargetHttpsProxy resource."
        },
        "setSslCertificates": {
          "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
          "request": {
            "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
          "description": "Replaces SslCertificates for TargetHttpsProxy.",
          "httpMethod": "POST",
          "id": "compute.targetHttpsProxies.setSslCertificates",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "targetHttpsProxy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the TargetHttpsProxy resource to set an\nSslCertificates resource for."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          }
        },
        "setSslPolicy": {
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "targetHttpsProxy": {
              "type": "string",
              "description": "Name of the TargetHttpsProxy resource whose SSL policy is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.targetHttpsProxies.setSslPolicy",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ],
          "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
          "request": {
            "$ref": "SslPolicyReference"
          },
          "description": "Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the\nserver-side support for SSL features. This affects connections between\nclients and the HTTPS proxy load balancer. They do not affect the\nconnection between the load balancer and the backends.",
          "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy"
        },
        "setCertificateMap": {
          "id": "compute.targetHttpsProxies.setCertificateMap",
          "request": {
            "$ref": "TargetHttpsProxiesSetCertificateMapRequest"
          },
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "targetHttpsProxy": {
              "type": "string",
              "description": "Name of the TargetHttpsProxy resource whose CertificateMap is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap",
          "description": "Changes the Certificate Map for TargetHttpsProxy.",
          "parameterOrder": [
            "project",
            "targetHttpsProxy"
          ]
        },
        "list": {
          "response": {
            "$ref": "TargetHttpsProxyList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves the list of TargetHttpsProxy resources\navailable to the specified project.",
          "flatPath": "projects/{project}/global/targetHttpsProxies",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/global/targetHttpsProxies",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.targetHttpsProxies.list"
        },
        "insert": {
          "request": {
            "$ref": "TargetHttpsProxy"
          },
          "description": "Creates a TargetHttpsProxy resource in the specified\nproject using the data included in the request.",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/global/targetHttpsProxies",
          "id": "compute.targetHttpsProxies.insert",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/targetHttpsProxies"
        }
      }
    },
    "regionInstanceGroupManagerResizeRequests": {
      "methods": {
        "list": {
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region\nscoping this request. Name should conform to RFC1035."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group. The name should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "default": "500",
              "type": "integer"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "response": {
            "$ref": "RegionInstanceGroupManagerResizeRequestsListResponse"
          },
          "description": "Retrieves a list of Resize Requests that are contained in the\nmanaged instance group.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests",
          "id": "compute.regionInstanceGroupManagerResizeRequests.list"
        },
        "get": {
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager",
            "resizeRequest"
          ],
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resizeRequest": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the resize request.\nName should conform to RFC1035 or be a resource ID."
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the region\nscoping this request. Name should conform to RFC1035."
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID."
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "InstanceGroupManagerResizeRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionInstanceGroupManagerResizeRequests.get",
          "description": "Returns all of the details about the specified resize request.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}"
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified, inactive resize request. Requests that are still\nactive cannot be deleted. Deleting request does not delete instances that\nwere provisioned previously.",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager",
            "resizeRequest"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}",
          "id": "compute.regionInstanceGroupManagerResizeRequests.delete",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "resizeRequest": {
              "description": "The name of the resize request to delete.\nName should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the region\nscoping this request. Name should conform to RFC1035."
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "DELETE"
        },
        "insert": {
          "id": "compute.regionInstanceGroupManagerResizeRequests.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests",
          "description": "Creates a new Resize Request that starts provisioning VMs immediately\nor queues VM creation.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "instanceGroupManager": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the managed instance group to which the resize request is scoped.\nName should conform to RFC1035 or be a resource ID."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region\nscoping this request. Name should conform to RFC1035.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "InstanceGroupManagerResizeRequest"
          }
        },
        "cancel": {
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager",
            "resizeRequest"
          ],
          "httpMethod": "POST",
          "parameters": {
            "resizeRequest": {
              "description": "The name of the resize request to cancel.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "description": "The name of the region\nscoping this request. Name should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "id": "compute.regionInstanceGroupManagerResizeRequests.cancel",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel",
          "response": {
            "$ref": "Operation"
          },
          "description": "Cancels the specified resize request.\nCancelled resize request no longer waits for the resources to be\nprovisioned. Cancel is only possible for requests that are in accepted\nstate."
        }
      }
    },
    "regionInstanceTemplates": {
      "methods": {
        "get": {
          "id": "compute.regionInstanceTemplates.get",
          "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "instanceTemplate": {
              "description": "The name of the instance template.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}",
          "parameterOrder": [
            "project",
            "region",
            "instanceTemplate"
          ],
          "description": "Returns the specified instance template.",
          "response": {
            "$ref": "InstanceTemplate"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "type": "integer",
              "default": "500"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "description": "The name of the regions for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "GET",
          "id": "compute.regionInstanceTemplates.list",
          "description": "Retrieves a list of instance templates that are contained within the\nspecified project and region.",
          "flatPath": "projects/{project}/regions/{region}/instanceTemplates",
          "path": "projects/{project}/regions/{region}/instanceTemplates",
          "response": {
            "$ref": "InstanceTemplateList"
          }
        },
        "delete": {
          "httpMethod": "DELETE",
          "id": "compute.regionInstanceTemplates.delete",
          "parameters": {
            "region": {
              "type": "string",
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "instanceTemplate": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The name of the instance template to delete.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified instance template. Deleting an instance template is\npermanent and cannot be undone.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}",
          "parameterOrder": [
            "project",
            "region",
            "instanceTemplate"
          ],
          "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}"
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/instanceTemplates",
          "flatPath": "projects/{project}/regions/{region}/instanceTemplates",
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "InstanceTemplate"
          },
          "id": "compute.regionInstanceTemplates.insert",
          "description": "Creates an instance template in the specified project and region using the\nglobal instance template whose URL is included in the request.",
          "parameterOrder": [
            "project",
            "region"
          ]
        }
      }
    },
    "nodeTypes": {
      "methods": {
        "get": {
          "parameters": {
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "nodeType": {
              "description": "Name of the node type to return.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone",
            "nodeType"
          ],
          "id": "compute.nodeTypes.get",
          "response": {
            "$ref": "NodeType"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
          "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
          "description": "Returns the specified node type."
        },
        "aggregatedList": {
          "httpMethod": "GET",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "serviceProjectNumber": {
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "format": "int64"
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/aggregated/nodeTypes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.nodeTypes.aggregatedList",
          "description": "Retrieves an aggregated list of node types.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "response": {
            "$ref": "NodeTypeAggregatedList"
          },
          "path": "projects/{project}/aggregated/nodeTypes",
          "parameterOrder": [
            "project"
          ]
        },
        "list": {
          "description": "Retrieves a list of node types available to the specified\nproject.",
          "id": "compute.nodeTypes.list",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "path": "projects/{project}/zones/{zone}/nodeTypes",
          "flatPath": "projects/{project}/zones/{zone}/nodeTypes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "format": "uint32"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "NodeTypeList"
          }
        }
      }
    },
    "routers": {
      "methods": {
        "getNatIpInfo": {
          "id": "compute.routers.getNatIpInfo",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo",
          "response": {
            "$ref": "NatIpInfoResponse"
          },
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "router": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the Router resource to query for Nat IP information. The name\nshould conform to RFC1035."
            },
            "natName": {
              "description": "Name of the nat service to filter the NAT IP information.\nIf it is omitted, all nats for this router will be returned.\nName should conform to RFC1035.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo",
          "httpMethod": "GET",
          "description": "Retrieves runtime NAT IP information."
        },
        "insert": {
          "description": "Creates a Router resource in the specified project and region using\nthe data included in the request.",
          "request": {
            "$ref": "Router"
          },
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/regions/{region}/routers",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.routers.insert",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/routers",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "listRoutePolicies": {
          "id": "compute.routers.listRoutePolicies",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "RoutersListRoutePolicies"
          },
          "httpMethod": "GET",
          "parameters": {
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "router": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.\nName should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "maxResults": {
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "path": "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies",
          "description": "Retrieves a list of router route policy subresources available to the\nspecified project."
        },
        "list": {
          "parameters": {
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "format": "uint32",
              "default": "500",
              "type": "integer",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          },
          "httpMethod": "GET",
          "description": "Retrieves a list of Router resources available to the specified project.",
          "response": {
            "$ref": "RouterList"
          },
          "path": "projects/{project}/regions/{region}/routers",
          "flatPath": "projects/{project}/regions/{region}/routers",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "id": "compute.routers.list"
        },
        "aggregatedList": {
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "serviceProjectNumber": {
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "type": "string"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "format": "uint32",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            }
          },
          "description": "Retrieves an aggregated list of routers.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "id": "compute.routers.aggregatedList",
          "path": "projects/{project}/aggregated/routers",
          "flatPath": "projects/{project}/aggregated/routers",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "RouterAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "deleteRoutePolicy": {
          "id": "compute.routers.deleteRoutePolicy",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy",
          "httpMethod": "POST",
          "parameters": {
            "policy": {
              "type": "string",
              "location": "query",
              "description": "The Policy name for this request. Name must conform to RFC1035"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "router": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Router resource where Route Policy is defined."
            },
            "region": {
              "type": "string",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "description": "Deletes Route Policy",
          "path": "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy"
        },
        "patchNamedSet": {
          "request": {
            "$ref": "NamedSet"
          },
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/patchNamedSet",
          "path": "projects/{project}/regions/{region}/routers/{router}/patchNamedSet",
          "description": "Patches Named Set",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.routers.patchNamedSet",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "router": {
              "description": "Name of the Router resource where Named Set is defined.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          }
        },
        "patch": {
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "id": "compute.routers.patch",
          "path": "projects/{project}/regions/{region}/routers/{router}",
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "router": {
              "description": "Name of the Router resource to patch.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            }
          },
          "description": "Patches the specified Router resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "request": {
            "$ref": "Router"
          },
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/routers/{router}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "deleteNamedSet": {
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "namedSet": {
              "location": "query",
              "type": "string",
              "description": "The Named Set name for this request. Name must conform to RFC1035"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "router": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the Router resource where Named Set is defined.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/routers/{router}/deleteNamedSet",
          "id": "compute.routers.deleteNamedSet",
          "description": "Deletes Named Set",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/deleteNamedSet",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "router"
          ]
        },
        "update": {
          "path": "projects/{project}/regions/{region}/routers/{router}",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "router": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the Router resource to update."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "PUT",
          "request": {
            "$ref": "Router"
          },
          "description": "Updates the specified Router resource with the data included in the\nrequest.  This method conforms toPUT semantics, which requests that the state of the\ntarget resource be created or replaced with the state defined by the\nrepresentation enclosed in the request message payload.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.routers.update",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}"
        },
        "delete": {
          "id": "compute.routers.delete",
          "description": "Deletes the specified Router resource.",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "path": "projects/{project}/regions/{region}/routers/{router}",
          "parameters": {
            "router": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the Router resource to delete."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          }
        },
        "updateNamedSet": {
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/routers/{router}/updateNamedSet",
          "parameters": {
            "router": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the Router resource where Named Set is defined."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "NamedSet"
          },
          "id": "compute.routers.updateNamedSet",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/updateNamedSet",
          "description": "Updates or creates new Named Set",
          "response": {
            "$ref": "Operation"
          }
        },
        "listBgpRoutes": {
          "description": "Retrieves a list of router bgp routes available to the specified project.",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "RoutersListBgpRoutes"
          },
          "parameters": {
            "router": {
              "description": "Name or id of the resource for this request.\nName should conform to RFC1035.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            },
            "addressFamily": {
              "description": "(Required) limit results to this address family (either IPv4 or IPv6)",
              "enum": [
                "IPV4",
                "IPV6",
                "UNSPECIFIED_IP_VERSION"
              ],
              "location": "query",
              "default": "UNSPECIFIED_IP_VERSION",
              "enumDescriptions": [
                "",
                "",
                ""
              ],
              "type": "string"
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "destinationPrefix": {
              "description": "Limit results to destinations that are subnets of this CIDR range",
              "type": "string",
              "location": "query"
            },
            "peer": {
              "description": "(Required) limit results to the BGP peer with the given name.\nName should conform to RFC1035.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "routeType": {
              "description": "(Required) limit results to this type of route (either LEARNED or\nADVERTISED)",
              "location": "query",
              "type": "string",
              "default": "UNSPECIFIED_ROUTE_TYPE",
              "enum": [
                "ADVERTISED",
                "LEARNED",
                "UNSPECIFIED_ROUTE_TYPE"
              ],
              "enumDescriptions": [
                "",
                "",
                ""
              ]
            },
            "policyApplied": {
              "description": "When true, the method returns post-policy routes. Otherwise, it returns\npre-policy routes.",
              "location": "query",
              "type": "boolean",
              "default": "true"
            }
          },
          "path": "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes",
          "httpMethod": "GET",
          "id": "compute.routers.listBgpRoutes",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes"
        },
        "updateRoutePolicy": {
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "router": {
              "location": "path",
              "required": true,
              "description": "Name of the Router resource where Route Policy is defined.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy",
          "id": "compute.routers.updateRoutePolicy",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "RoutePolicy"
          },
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "description": "Updates or creates new Route Policy"
        },
        "getNamedSet": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns specified Named Set",
          "path": "projects/{project}/regions/{region}/routers/{router}/getNamedSet",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNamedSet",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "id": "compute.routers.getNamedSet",
          "response": {
            "$ref": "RoutersGetNamedSetResponse"
          },
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "namedSet": {
              "location": "query",
              "type": "string",
              "description": "The Named Set name for this request. Name must conform to RFC1035"
            },
            "router": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the Router resource to query for the named set. The name should\nconform to RFC1035."
            }
          }
        },
        "getRoutePolicy": {
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "router": {
              "description": "Name of the Router resource to query for the route policy. The name should\nconform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "policy": {
              "location": "query",
              "type": "string",
              "description": "The Policy name for this request. Name must conform to RFC1035"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy",
          "id": "compute.routers.getRoutePolicy",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "description": "Returns specified Route Policy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "RoutersGetRoutePolicyResponse"
          }
        },
        "listNamedSets": {
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "description": "Retrieves a list of router named set subresources available to the\nspecified project.",
          "parameters": {
            "router": {
              "type": "string",
              "description": "Name or id of the resource for this request.\nName should conform to RFC1035.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "type": "integer"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            }
          },
          "path": "projects/{project}/regions/{region}/routers/{router}/listNamedSets",
          "response": {
            "$ref": "RoutersListNamedSets"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/listNamedSets",
          "id": "compute.routers.listNamedSets"
        },
        "getRouterStatus": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.routers.getRouterStatus",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
          "description": "Retrieves runtime information of the specified router.",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
          "response": {
            "$ref": "RouterStatusResponse"
          },
          "parameters": {
            "router": {
              "description": "Name of the Router resource to query.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "GET"
        },
        "patchRoutePolicy": {
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "path": "projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "router": {
              "description": "Name of the Router resource where Route Policy is defined.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "RoutePolicy"
          },
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy",
          "id": "compute.routers.patchRoutePolicy",
          "description": "Patches Route Policy"
        },
        "preview": {
          "description": "Preview fields auto-generated during router create andupdate operations.\nCalling this method does NOT create or update the router.",
          "path": "projects/{project}/regions/{region}/routers/{router}/preview",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region for this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "router": {
              "type": "string",
              "description": "Name of the Router resource to query.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "Router"
          },
          "id": "compute.routers.preview",
          "response": {
            "$ref": "RoutersPreviewResponse"
          }
        },
        "get": {
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/routers/{router}",
          "parameters": {
            "router": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Router resource to return."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "response": {
            "$ref": "Router"
          },
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "description": "Returns the specified Router resource.",
          "path": "projects/{project}/regions/{region}/routers/{router}",
          "id": "compute.routers.get"
        },
        "getNatMappingInfo": {
          "response": {
            "$ref": "VmEndpointNatMappingsList"
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
          "parameters": {
            "natName": {
              "type": "string",
              "location": "query",
              "description": "Name of the nat service to filter the Nat Mapping information.\nIf it is omitted, all nats for this router will be returned.\nName should conform to RFC1035."
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "region": {
              "description": "Name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "type": "integer",
              "minimum": "0",
              "default": "500",
              "location": "query"
            },
            "router": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the Router resource to query for Nat Mapping information of\nVM endpoints.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
          "id": "compute.routers.getNatMappingInfo",
          "parameterOrder": [
            "project",
            "region",
            "router"
          ],
          "description": "Retrieves runtime Nat mapping information of VM endpoints.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        }
      }
    },
    "nodeGroups": {
      "methods": {
        "aggregatedList": {
          "parameterOrder": [
            "project"
          ],
          "description": "Retrieves an aggregated list of node groups.\nNote: use nodeGroups.listNodes for more details about each group.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "parameters": {
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "type": "integer"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            }
          },
          "path": "projects/{project}/aggregated/nodeGroups",
          "flatPath": "projects/{project}/aggregated/nodeGroups",
          "id": "compute.nodeGroups.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "NodeGroupAggregatedList"
          }
        },
        "deleteNodes": {
          "id": "compute.nodeGroups.deleteNodes",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "nodeGroup": {
              "description": "Name of the NodeGroup resource whose nodes will be deleted.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
          "request": {
            "$ref": "NodeGroupsDeleteNodesRequest"
          },
          "description": "Deletes specified nodes from the node group.",
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes"
        },
        "insert": {
          "id": "compute.nodeGroups.insert",
          "description": "Creates a NodeGroup resource in the specified project using the data\nincluded in the request.",
          "path": "projects/{project}/zones/{zone}/nodeGroups",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "initialNodeCount": {
              "location": "query",
              "required": true,
              "description": "Initial count of nodes in the node group.",
              "format": "int32",
              "type": "integer"
            }
          },
          "request": {
            "$ref": "NodeGroup"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups",
          "parameterOrder": [
            "project",
            "zone",
            "initialNodeCount"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "addNodes": {
          "request": {
            "$ref": "NodeGroupsAddNodesRequest"
          },
          "description": "Adds specified number of nodes to the node group.",
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "nodeGroup": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the NodeGroup resource.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "id": "compute.nodeGroups.addNodes"
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            },
            "nodeGroup": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the node group to return.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "description": "Returns the specified NodeGroup. Get a list of available NodeGroups\nby making a list() request.\nNote: the \"nodes\" field should not be used. Use nodeGroups.listNodes\ninstead.",
          "response": {
            "$ref": "NodeGroup"
          },
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
          "id": "compute.nodeGroups.get",
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}"
        },
        "delete": {
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
          "description": "Deletes the specified NodeGroup resource.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "nodeGroup": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NodeGroup resource to delete.",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
          "id": "compute.nodeGroups.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "testIamPermissions": {
          "description": "Returns permissions that a caller has on the specified resource.",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "parameters": {
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "id": "compute.nodeGroups.testIamPermissions"
        },
        "patch": {
          "description": "Updates the specified node group.",
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
          "id": "compute.nodeGroups.patch",
          "httpMethod": "PATCH",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "nodeGroup": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NodeGroup resource to update.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "request": {
            "$ref": "NodeGroup"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}"
        },
        "performMaintenance": {
          "description": "Perform maintenance on a subset of nodes in the node group.",
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "request": {
            "$ref": "NodeGroupsPerformMaintenanceRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "nodeGroup": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the node group scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance",
          "id": "compute.nodeGroups.performMaintenance",
          "response": {
            "$ref": "Operation"
          }
        },
        "setNodeTemplate": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.nodeGroups.setNodeTemplate",
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
          "request": {
            "$ref": "NodeGroupsSetNodeTemplateRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "nodeGroup": {
              "description": "Name of the NodeGroup resource to update.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "description": "Updates the node template of the node group.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ]
        },
        "setIamPolicy": {
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "id": "compute.nodeGroups.setIamPolicy",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
          "request": {
            "$ref": "ZoneSetPolicyRequest"
          }
        },
        "list": {
          "description": "Retrieves a list of node groups available to the specified project.\nNote: use nodeGroups.listNodes for more details about each group.",
          "id": "compute.nodeGroups.list",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "format": "uint32",
              "type": "integer",
              "minimum": "0"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "NodeGroupList"
          },
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups",
          "path": "projects/{project}/zones/{zone}/nodeGroups"
        },
        "getIamPolicy": {
          "httpMethod": "GET",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "id": "compute.nodeGroups.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy"
        },
        "simulateMaintenanceEvent": {
          "request": {
            "$ref": "NodeGroupsSimulateMaintenanceEventRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent",
          "description": "Simulates maintenance event on specified nodes from the node group.",
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.nodeGroups.simulateMaintenanceEvent",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "nodeGroup": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NodeGroup resource whose nodes will go under maintenance\nsimulation."
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          }
        },
        "listNodes": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "nodeGroup"
          ],
          "id": "compute.nodeGroups.listNodes",
          "response": {
            "$ref": "NodeGroupsListNodes"
          },
          "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
          "parameters": {
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "nodeGroup": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NodeGroup resource whose nodes you want to list.",
              "location": "path",
              "required": true
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "default": "500",
              "minimum": "0",
              "location": "query",
              "type": "integer"
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
          "description": "Lists nodes in the node group."
        }
      }
    },
    "backendBuckets": {
      "methods": {
        "getIamPolicy": {
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "flatPath": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy",
          "id": "compute.backendBuckets.getIamPolicy",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "type": "integer",
              "location": "query",
              "description": "Requested IAM Policy version.",
              "format": "int32"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Policy"
          },
          "httpMethod": "GET"
        },
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "id": "compute.backendBuckets.testIamPermissions",
          "path": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            }
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions"
        },
        "setEdgeSecurityPolicy": {
          "id": "compute.backendBuckets.setEdgeSecurityPolicy",
          "description": "Sets the edge security policy for the specified backend bucket.",
          "path": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy",
          "parameterOrder": [
            "project",
            "backendBucket"
          ],
          "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy",
          "httpMethod": "POST",
          "parameters": {
            "backendBucket": {
              "description": "Name of the BackendBucket resource to which the security policy should be\nset. The name should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "request": {
            "$ref": "SecurityPolicyReference"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "setIamPolicy": {
          "parameterOrder": [
            "project",
            "resource"
          ],
          "id": "compute.backendBuckets.setIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "flatPath": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy",
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "addSignedUrlKey": {
          "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
          "request": {
            "$ref": "SignedUrlKey"
          },
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "backendBucket": {
              "location": "path",
              "required": true,
              "description": "Name of the BackendBucket resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035.",
              "type": "string"
            }
          },
          "id": "compute.backendBuckets.addSignedUrlKey",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
          "parameterOrder": [
            "project",
            "backendBucket"
          ],
          "description": "Adds a key for validating requests with signed URLs for this backend\nbucket.",
          "response": {
            "$ref": "Operation"
          }
        },
        "deleteSignedUrlKey": {
          "id": "compute.backendBuckets.deleteSignedUrlKey",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "backendBucket": {
              "location": "path",
              "required": true,
              "description": "Name of the BackendBucket resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035.",
              "type": "string"
            },
            "keyName": {
              "description": "The name of the Signed URL Key to delete.",
              "location": "query",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "backendBucket",
            "keyName"
          ],
          "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
          "description": "Deletes a key for validating requests with signed URLs for this backend\nbucket.",
          "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey"
        },
        "list": {
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "default": "500"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/global/backendBuckets",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves the list of BackendBucket resources available to the specified\nproject.",
          "path": "projects/{project}/global/backendBuckets",
          "id": "compute.backendBuckets.list",
          "response": {
            "$ref": "BackendBucketList"
          }
        },
        "listUsable": {
          "id": "compute.backendBuckets.listUsable",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of all usable backend buckets in the specified project.",
          "flatPath": "projects/{project}/global/backendBuckets/listUsable",
          "response": {
            "$ref": "BackendBucketListUsable"
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/global/backendBuckets/listUsable",
          "parameters": {
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "default": "500",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            }
          }
        },
        "insert": {
          "id": "compute.backendBuckets.insert",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project"
          ],
          "request": {
            "$ref": "BackendBucket"
          },
          "flatPath": "projects/{project}/global/backendBuckets",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/backendBuckets",
          "description": "Creates a BackendBucket resource in the specified project using\nthe data included in the request."
        },
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "BackendBucket"
          },
          "path": "projects/{project}/global/backendBuckets/{backendBucket}",
          "description": "Updates the specified BackendBucket resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "parameterOrder": [
            "project",
            "backendBucket"
          ],
          "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
          "httpMethod": "PATCH",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "backendBucket": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendBucket resource to patch."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.backendBuckets.patch"
        },
        "delete": {
          "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "backendBucket": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendBucket resource to delete.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.backendBuckets.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/backendBuckets/{backendBucket}",
          "description": "Deletes the specified BackendBucket resource.",
          "parameterOrder": [
            "project",
            "backendBucket"
          ]
        },
        "update": {
          "parameterOrder": [
            "project",
            "backendBucket"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.backendBuckets.update",
          "response": {
            "$ref": "Operation"
          },
          "description": "Updates the specified BackendBucket resource with the data included in the\nrequest.",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "backendBucket": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendBucket resource to update.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "PUT",
          "request": {
            "$ref": "BackendBucket"
          },
          "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
          "path": "projects/{project}/global/backendBuckets/{backendBucket}"
        },
        "get": {
          "path": "projects/{project}/global/backendBuckets/{backendBucket}",
          "response": {
            "$ref": "BackendBucket"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
          "parameterOrder": [
            "project",
            "backendBucket"
          ],
          "parameters": {
            "backendBucket": {
              "description": "Name of the BackendBucket resource to return.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET",
          "id": "compute.backendBuckets.get",
          "description": "Returns the specified BackendBucket resource."
        },
        "aggregatedList": {
          "response": {
            "$ref": "BackendBucketAggregatedList"
          },
          "flatPath": "projects/{project}/aggregated/backendBuckets",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/aggregated/backendBuckets",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "serviceProjectNumber": {
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Name of the project scoping this request."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "format": "uint32",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.backendBuckets.aggregatedList",
          "description": "Retrieves the list of all BackendBucket resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`."
        }
      }
    },
    "networkAttachments": {
      "methods": {
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "region",
            "networkAttachment"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query",
              "type": "string"
            },
            "networkAttachment": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NetworkAttachment resource to delete.",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region of this request."
            }
          },
          "id": "compute.networkAttachments.delete",
          "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}",
          "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}",
          "description": "Deletes the specified NetworkAttachment in the given scope",
          "response": {
            "$ref": "Operation"
          }
        },
        "patch": {
          "description": "Patches the specified NetworkAttachment resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "parameterOrder": [
            "project",
            "region",
            "networkAttachment"
          ],
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder"
            },
            "networkAttachment": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NetworkAttachment resource to patch.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "request": {
            "$ref": "NetworkAttachment"
          },
          "httpMethod": "PATCH",
          "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.networkAttachments.patch",
          "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}"
        },
        "get": {
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region of this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "networkAttachment": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the NetworkAttachment resource to return."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}",
          "description": "Returns the specified NetworkAttachment resource in the given scope.",
          "parameterOrder": [
            "project",
            "region",
            "networkAttachment"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.networkAttachments.get",
          "response": {
            "$ref": "NetworkAttachment"
          }
        },
        "setIamPolicy": {
          "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request."
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "id": "compute.networkAttachments.setIamPolicy",
          "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy."
        },
        "testIamPermissions": {
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions",
          "id": "compute.networkAttachments.testIamPermissions",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            }
          },
          "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "description": "Returns permissions that a caller has on the specified resource."
        },
        "list": {
          "flatPath": "projects/{project}/regions/{region}/networkAttachments",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "location": "query",
              "type": "integer",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "format": "uint32"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "region": {
              "description": "Name of the region of this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.networkAttachments.list",
          "response": {
            "$ref": "NetworkAttachmentList"
          },
          "path": "projects/{project}/regions/{region}/networkAttachments",
          "description": "Lists the NetworkAttachments for a project in the given scope.",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "aggregatedList": {
          "description": "Retrieves the list of all NetworkAttachment resources,\nregional and global, available to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "response": {
            "$ref": "NetworkAttachmentAggregatedList"
          },
          "path": "projects/{project}/aggregated/networkAttachments",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "location": "query"
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          },
          "flatPath": "projects/{project}/aggregated/networkAttachments",
          "httpMethod": "GET",
          "id": "compute.networkAttachments.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ]
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "NetworkAttachment"
          },
          "description": "Creates a NetworkAttachment in the specified project in the given scope\nusing the parameters that are included in the request.",
          "path": "projects/{project}/regions/{region}/networkAttachments",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/networkAttachments",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region of this request."
            }
          },
          "httpMethod": "POST",
          "id": "compute.networkAttachments.insert"
        },
        "getIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy",
          "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy",
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "description": "Requested IAM Policy version.",
              "location": "query",
              "type": "integer"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "id": "compute.networkAttachments.getIamPolicy"
        }
      }
    },
    "regionOperations": {
      "methods": {
        "delete": {
          "flatPath": "projects/{project}/regions/{region}/operations/{operation}",
          "httpMethod": "DELETE",
          "path": "projects/{project}/regions/{region}/operations/{operation}",
          "parameterOrder": [
            "project",
            "region",
            "operation"
          ],
          "id": "compute.regionOperations.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified region-specific Operations resource.",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "operation": {
              "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "type": "string",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          }
        },
        "wait": {
          "parameters": {
            "operation": {
              "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "region": {
              "description": "Name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait",
          "parameterOrder": [
            "project",
            "region",
            "operation"
          ],
          "id": "compute.regionOperations.wait",
          "path": "projects/{project}/regions/{region}/operations/{operation}/wait",
          "description": "Waits for the specified Operation resource to return as `DONE`\nor for the request to approach the 2 minute deadline, and retrieves the\nspecified Operation resource. This method differs from the\n`GET` method in that it waits for no more than the default\ndeadline (2 minutes) and then returns the current state of the operation,\nwhich might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:\n   \n   \n    - In uncommon cases, when the server is overloaded, the request might\n    return before the default deadline is reached, or might return after zero\n    seconds.\n   - If the default deadline is reached, there is no guarantee that the\n    operation is actually done when the method returns. Be prepared to retry\n    if the operation is not `DONE`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "get": {
          "flatPath": "projects/{project}/regions/{region}/operations/{operation}",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "operation"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/operations/{operation}",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "operation": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "description": "Retrieves the specified region-specific Operations resource.",
          "id": "compute.regionOperations.get"
        },
        "list": {
          "path": "projects/{project}/regions/{region}/operations",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of Operation resources contained within\nthe specified region.",
          "id": "compute.regionOperations.list",
          "flatPath": "projects/{project}/regions/{region}/operations",
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            },
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "OperationList"
          }
        }
      }
    },
    "resourcePolicies": {
      "methods": {
        "delete": {
          "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.resourcePolicies.delete",
          "httpMethod": "DELETE",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "resourcePolicy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the resource policy to delete."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "resourcePolicy"
          ],
          "description": "Deletes the specified resource policy.",
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
          "response": {
            "$ref": "Operation"
          }
        },
        "patch": {
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
          "request": {
            "$ref": "ResourcePolicy"
          },
          "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
          "id": "compute.resourcePolicies.patch",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "resourcePolicy"
          ],
          "httpMethod": "PATCH",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "updateMask": {
              "location": "query",
              "format": "google-fieldmask",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            },
            "resourcePolicy": {
              "description": "Id of the resource policy to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "description": "Modify the specified resource policy."
        },
        "testIamPermissions": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "id": "compute.resourcePolicies.testIamPermissions",
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "httpMethod": "POST",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          }
        },
        "list": {
          "id": "compute.resourcePolicies.list",
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies",
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ResourcePolicyList"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/resourcePolicies",
          "description": "A list all the resource policies that have been configured for the\nspecified project in specified region.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setIamPolicy": {
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
          "id": "compute.resourcePolicies.setIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy"
        },
        "aggregatedList": {
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "parameters": {
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "maxResults": {
              "format": "uint32",
              "type": "integer",
              "minimum": "0",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "serviceProjectNumber": {
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "path": "projects/{project}/aggregated/resourcePolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.resourcePolicies.aggregatedList",
          "response": {
            "$ref": "ResourcePolicyAggregatedList"
          },
          "description": "Retrieves an aggregated list of resource policies.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/resourcePolicies"
        },
        "get": {
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
          "description": "Retrieves all information of the specified resource policy.",
          "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
          "response": {
            "$ref": "ResourcePolicy"
          },
          "id": "compute.resourcePolicies.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            },
            "resourcePolicy": {
              "type": "string",
              "description": "Name of the resource policy to retrieve.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "resourcePolicy"
          ]
        },
        "insert": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies",
          "description": "Creates a new resource policy.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/resourcePolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ResourcePolicy"
          },
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "id": "compute.resourcePolicies.insert"
        },
        "getIamPolicy": {
          "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
          "httpMethod": "GET",
          "response": {
            "$ref": "Policy"
          },
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "id": "compute.resourcePolicies.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy"
        }
      }
    },
    "regionInstances": {
      "methods": {
        "bulkInsert": {
          "description": "Creates multiple instances in a given region. Count specifies the number of\ninstances to create.",
          "request": {
            "$ref": "BulkInsertInstanceResource"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert",
          "id": "compute.regionInstances.bulkInsert",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/instances/bulkInsert"
        }
      }
    },
    "nodeTemplates": {
      "methods": {
        "insert": {
          "request": {
            "$ref": "NodeTemplate"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/nodeTemplates",
          "parameterOrder": [
            "project",
            "region"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/nodeTemplates",
          "description": "Creates a NodeTemplate resource in the specified project using the data\nincluded in the request.",
          "id": "compute.nodeTemplates.insert",
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
          "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
          "parameterOrder": [
            "project",
            "region",
            "nodeTemplate"
          ],
          "id": "compute.nodeTemplates.get",
          "httpMethod": "GET",
          "response": {
            "$ref": "NodeTemplate"
          },
          "parameters": {
            "nodeTemplate": {
              "location": "path",
              "required": true,
              "description": "Name of the node template to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true
            }
          },
          "description": "Returns the specified node template.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "aggregatedList": {
          "description": "Retrieves an aggregated list of node templates.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "type": "integer",
              "minimum": "0",
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "NodeTemplateAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.nodeTemplates.aggregatedList",
          "flatPath": "projects/{project}/aggregated/nodeTemplates",
          "path": "projects/{project}/aggregated/nodeTemplates"
        },
        "list": {
          "httpMethod": "GET",
          "response": {
            "$ref": "NodeTemplateList"
          },
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request."
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "id": "compute.nodeTemplates.list",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of node templates available to the specified\nproject.",
          "flatPath": "projects/{project}/regions/{region}/nodeTemplates",
          "path": "projects/{project}/regions/{region}/nodeTemplates"
        },
        "testIamPermissions": {
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
          "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.nodeTemplates.testIamPermissions"
        },
        "getIamPolicy": {
          "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.nodeTemplates.getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "format": "int32",
              "type": "integer",
              "location": "query"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request.",
              "type": "string"
            }
          }
        },
        "setIamPolicy": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Policy"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "id": "compute.nodeTemplates.setIamPolicy",
          "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy"
        },
        "delete": {
          "description": "Deletes the specified NodeTemplate resource.",
          "parameterOrder": [
            "project",
            "region",
            "nodeTemplate"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
          "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
          "httpMethod": "DELETE",
          "parameters": {
            "nodeTemplate": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the NodeTemplate resource to delete.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "id": "compute.nodeTemplates.delete",
          "response": {
            "$ref": "Operation"
          }
        }
      }
    },
    "vpnGateways": {
      "methods": {
        "setLabels": {
          "description": "Sets the labels on a VpnGateway. To learn more about labels, read theLabeling\nResources documentation.",
          "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The region for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "id": "compute.vpnGateways.setLabels",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Creates a VPN gateway in the specified project and region using\nthe data included in the request.",
          "parameterOrder": [
            "project",
            "region"
          ],
          "request": {
            "$ref": "VpnGateway"
          },
          "flatPath": "projects/{project}/regions/{region}/vpnGateways",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "id": "compute.vpnGateways.insert",
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/vpnGateways"
        },
        "list": {
          "path": "projects/{project}/regions/{region}/vpnGateways",
          "flatPath": "projects/{project}/regions/{region}/vpnGateways",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "VpnGatewayList"
          },
          "id": "compute.vpnGateways.list",
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Retrieves a list of VPN gateways available to the specified\nproject and region."
        },
        "aggregatedList": {
          "description": "Retrieves an aggregated list of VPN gateways.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "format": "uint32",
              "type": "integer",
              "minimum": "0",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "path": "projects/{project}/aggregated/vpnGateways",
          "id": "compute.vpnGateways.aggregatedList",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "VpnGatewayAggregatedList"
          },
          "flatPath": "projects/{project}/aggregated/vpnGateways"
        },
        "testIamPermissions": {
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.vpnGateways.testIamPermissions",
          "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          }
        },
        "get": {
          "response": {
            "$ref": "VpnGateway"
          },
          "id": "compute.vpnGateways.get",
          "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region",
            "vpnGateway"
          ],
          "parameters": {
            "vpnGateway": {
              "description": "Name of the VPN gateway to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
          "description": "Returns the specified VPN gateway."
        },
        "delete": {
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "region": {
              "type": "string",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "vpnGateway": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the VPN gateway to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
          "parameterOrder": [
            "project",
            "region",
            "vpnGateway"
          ],
          "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
          "description": "Deletes the specified VPN gateway.",
          "id": "compute.vpnGateways.delete"
        },
        "getStatus": {
          "parameterOrder": [
            "project",
            "region",
            "vpnGateway"
          ],
          "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
          "id": "compute.vpnGateways.getStatus",
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "vpnGateway": {
              "description": "Name of the VPN gateway to return.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "response": {
            "$ref": "VpnGatewaysGetStatusResponse"
          },
          "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the status for the specified VPN gateway."
        }
      }
    },
    "instantSnapshotGroups": {
      "methods": {
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0",
              "format": "uint32"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "path": "projects/{project}/zones/{zone}/instantSnapshotGroups",
          "httpMethod": "GET",
          "description": "retrieves the list of InstantSnapshotGroup resources contained within\nthe specified zone.",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "response": {
            "$ref": "ListInstantSnapshotGroups"
          },
          "id": "compute.instantSnapshotGroups.list",
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups"
        },
        "delete": {
          "id": "compute.instantSnapshotGroups.delete",
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}",
          "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}",
          "parameterOrder": [
            "project",
            "zone",
            "instantSnapshotGroup"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "description": "deletes a Zonal InstantSnapshotGroup resource",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "instantSnapshotGroup": {
              "description": "Name of the InstantSnapshot resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          }
        },
        "getIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/getIamPolicy",
          "id": "compute.instantSnapshotGroups.getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "httpMethod": "GET",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "location": "query",
              "format": "int32",
              "description": "Requested IAM Policy version.",
              "type": "integer"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/getIamPolicy"
        },
        "setIamPolicy": {
          "id": "compute.instantSnapshotGroups.setIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "request": {
            "$ref": "ZoneSetPolicyRequest"
          },
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/setIamPolicy"
        },
        "testIamPermissions": {
          "id": "compute.instantSnapshotGroups.testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "resource": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/testIamPermissions"
        },
        "get": {
          "httpMethod": "GET",
          "parameters": {
            "instantSnapshotGroup": {
              "type": "string",
              "description": "Name of the InstantSnapshotGroup resource to return.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "InstantSnapshotGroup"
          },
          "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}",
          "id": "compute.instantSnapshotGroups.get",
          "parameterOrder": [
            "project",
            "zone",
            "instantSnapshotGroup"
          ],
          "description": "returns the specified InstantSnapshotGroup resource in the specified zone."
        },
        "insert": {
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups",
          "httpMethod": "POST",
          "request": {
            "$ref": "InstantSnapshotGroup"
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "parameters": {
            "sourceConsistencyGroup": {
              "description": "begin_interface: MixerMutationRequestBuilder",
              "location": "query",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "inserts a Zonal InstantSnapshotGroup resource",
          "id": "compute.instantSnapshotGroups.insert",
          "path": "projects/{project}/zones/{zone}/instantSnapshotGroups"
        }
      }
    },
    "networks": {
      "methods": {
        "patch": {
          "path": "projects/{project}/global/networks/{network}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "network"
          ],
          "id": "compute.networks.patch",
          "request": {
            "$ref": "Network"
          },
          "httpMethod": "PATCH",
          "description": "Patches the specified network with the data included in the request.\nOnly routingConfig can be modified.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "network": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the network to update.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/global/networks/{network}",
          "response": {
            "$ref": "Operation"
          }
        },
        "addPeering": {
          "parameterOrder": [
            "project",
            "network"
          ],
          "httpMethod": "POST",
          "description": "Adds a peering to the specified network.",
          "parameters": {
            "network": {
              "description": "Name of the network resource to add peering to.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "id": "compute.networks.addPeering",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/networks/{network}/addPeering",
          "path": "projects/{project}/global/networks/{network}/addPeering",
          "request": {
            "$ref": "NetworksAddPeeringRequest"
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "switchToCustomMode": {
          "id": "compute.networks.switchToCustomMode",
          "path": "projects/{project}/global/networks/{network}/switchToCustomMode",
          "parameterOrder": [
            "project",
            "network"
          ],
          "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "network": {
              "type": "string",
              "description": "Name of the network to be updated.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "removePeering": {
          "parameterOrder": [
            "project",
            "network"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/networks/{network}/removePeering",
          "id": "compute.networks.removePeering",
          "description": "Removes a peering from the specified network.",
          "request": {
            "$ref": "NetworksRemovePeeringRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/networks/{network}/removePeering",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "network": {
              "description": "Name of the network resource to remove peering from.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          }
        },
        "cancelRequestRemovePeering": {
          "path": "projects/{project}/global/networks/{network}/cancelRequestRemovePeering",
          "description": "Cancel requests to remove a peering from the specified network. Applicable\nonly for PeeringConnection with update_strategy=CONSENSUS.  Cancels a\nrequest to remove a peering from the specified network.",
          "request": {
            "$ref": "NetworksCancelRequestRemovePeeringRequest"
          },
          "flatPath": "projects/{project}/global/networks/{network}/cancelRequestRemovePeering",
          "id": "compute.networks.cancelRequestRemovePeering",
          "parameterOrder": [
            "project",
            "network"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "network": {
              "description": "Name of the network resource to remove peering from.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          }
        },
        "list": {
          "flatPath": "projects/{project}/global/networks",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "NetworkList"
          },
          "httpMethod": "GET",
          "path": "projects/{project}/global/networks",
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "format": "uint32",
              "location": "query",
              "default": "500",
              "type": "integer"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.networks.list",
          "description": "Retrieves the list of networks available to the specified project."
        },
        "getEffectiveFirewalls": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
          "parameterOrder": [
            "project",
            "network"
          ],
          "response": {
            "$ref": "NetworksGetEffectiveFirewallsResponse"
          },
          "httpMethod": "GET",
          "parameters": {
            "network": {
              "type": "string",
              "description": "Name of the network for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "description": "Returns the effective firewalls on a given network.",
          "id": "compute.networks.getEffectiveFirewalls",
          "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls"
        },
        "requestRemovePeering": {
          "request": {
            "$ref": "NetworksRequestRemovePeeringRequest"
          },
          "flatPath": "projects/{project}/global/networks/{network}/requestRemovePeering",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "network": {
              "type": "string",
              "description": "Name of the network resource to remove peering from.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.networks.requestRemovePeering",
          "description": "Requests to remove a peering from the specified network. Applicable only\nfor PeeringConnection with update_strategy=CONSENSUS.",
          "parameterOrder": [
            "project",
            "network"
          ],
          "path": "projects/{project}/global/networks/{network}/requestRemovePeering"
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/networks",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.networks.insert",
          "flatPath": "projects/{project}/global/networks",
          "description": "Creates a network in the specified project using the data included\nin the request.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "Network"
          }
        },
        "listPeeringRoutes": {
          "id": "compute.networks.listPeeringRoutes",
          "parameterOrder": [
            "project",
            "network"
          ],
          "path": "projects/{project}/global/networks/{network}/listPeeringRoutes",
          "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "ExchangedPeeringRoutesList"
          },
          "description": "Lists the peering routes exchanged over peering connection.",
          "parameters": {
            "direction": {
              "enumDescriptions": [
                "For routes exported from peer network.",
                "For routes exported from local network."
              ],
              "enum": [
                "INCOMING",
                "OUTGOING"
              ],
              "location": "query",
              "type": "string",
              "description": "The direction of the exchanged routes."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "peeringName": {
              "description": "The response will show routes exchanged over the given peering connection.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "region": {
              "type": "string",
              "description": "The region of the request. The response will include all subnet routes,\nstatic routes and dynamic routes in the region.",
              "location": "query"
            },
            "network": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the network for this request.",
              "type": "string"
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer",
              "format": "uint32",
              "default": "500"
            }
          }
        },
        "delete": {
          "parameterOrder": [
            "project",
            "network"
          ],
          "path": "projects/{project}/global/networks/{network}",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "network": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the network to delete.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.networks.delete",
          "httpMethod": "DELETE",
          "flatPath": "projects/{project}/global/networks/{network}",
          "description": "Deletes the specified network.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "updatePeering": {
          "id": "compute.networks.updatePeering",
          "parameterOrder": [
            "project",
            "network"
          ],
          "description": "Updates the specified network peering with the data included in the\nrequest. You can only modify the NetworkPeering.export_custom_routes field\nand the NetworkPeering.import_custom_routes field.",
          "flatPath": "projects/{project}/global/networks/{network}/updatePeering",
          "httpMethod": "PATCH",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "network": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the network resource which the updated peering is belonging to.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "NetworksUpdatePeeringRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/networks/{network}/updatePeering"
        },
        "get": {
          "path": "projects/{project}/global/networks/{network}",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "network": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the network to return."
            }
          },
          "parameterOrder": [
            "project",
            "network"
          ],
          "id": "compute.networks.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified network.",
          "flatPath": "projects/{project}/global/networks/{network}",
          "response": {
            "$ref": "Network"
          }
        }
      }
    },
    "zones": {
      "methods": {
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.zones.get",
          "path": "projects/{project}/zones/{zone}",
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the zone resource to return."
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}",
          "response": {
            "$ref": "Zone"
          },
          "description": "Returns the specified Zone resource."
        },
        "list": {
          "id": "compute.zones.list",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "default": "500"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "description": "Retrieves the list of Zone resources available to the specified project.",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/zones",
          "path": "projects/{project}/zones",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "ZoneList"
          }
        }
      }
    },
    "reservationSlots": {
      "methods": {
        "list": {
          "description": "Retrieves a list of reservation slots under a single reservation.",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots",
          "parameterOrder": [
            "project",
            "zone",
            "parentName"
          ],
          "response": {
            "$ref": "ReservationSlotsListResponse"
          },
          "httpMethod": "GET",
          "parameters": {
            "parentName": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the parent reservation and parent block, formatted as\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}/reservationSubBlocks/{reservation_sub_block_name}",
              "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request, formatted as RFC1035.",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "default": "500"
            },
            "project": {
              "description": "The project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            }
          },
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots",
          "id": "compute.reservationSlots.list",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "getHealth": {
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSlot"
          ],
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request. Zone name should conform to RFC1035.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests.",
              "location": "query",
              "type": "string"
            },
            "parentName": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the parent reservation, parent block and parent sub-block. In\nthe format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}/reservationSubBlocks/{reservation_sub_block_name}",
              "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})"
            },
            "reservationSlot": {
              "description": "The name of the reservation slot.\nName should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "description": "Get health info on a reservation slot.",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots/{reservationSlot}/getHealth",
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}/getHealth",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.reservationSlots.getHealth"
        },
        "getVersion": {
          "request": {
            "$ref": "ReservationSlotsGetVersionRequest"
          },
          "httpMethod": "POST",
          "description": "Allows customers to get SBOM versions of a reservation slot.",
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}/getVersion",
          "parameters": {
            "reservationSlot": {
              "description": "The name of the reservation slot.\nName should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the zone for this request. Zone name should conform to RFC1035."
            },
            "parentName": {
              "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}/reservationSubBlocks/{reservation_sub_block_name}",
              "type": "string",
              "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSlot"
          ],
          "id": "compute.reservationSlots.getVersion",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots/{reservationSlot}/getVersion",
          "response": {
            "$ref": "Operation"
          }
        },
        "update": {
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots/{reservationSlot}",
          "id": "compute.reservationSlots.update",
          "request": {
            "$ref": "ReservationSlot"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSlot"
          ],
          "parameters": {
            "parentName": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})",
              "description": "The name of the sub-block resource."
            },
            "project": {
              "description": "The project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "type": "string",
              "location": "query",
              "format": "google-fieldmask",
              "description": "The fields to be updated as part of this request."
            },
            "reservationSlot": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the slot resource."
            },
            "zone": {
              "description": "The name of the zone for this request, formatted as RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "description": "Update a reservation slot in the specified sub-block.",
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}",
          "httpMethod": "POST"
        },
        "get": {
          "description": "Retrieves information about the specified reservation slot.",
          "response": {
            "$ref": "ReservationSlotsGetResponse"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots/{reservationSlot}",
          "id": "compute.reservationSlots.get",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request, formatted as RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "parentName": {
              "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the parent reservation and parent block, formatted as\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}/reservationSubBlocks/{reservation_sub_block_name}"
            },
            "reservationSlot": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the reservation slot, formatted as RFC1035 or a resource ID\nnumber."
            },
            "project": {
              "description": "The project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone",
            "parentName",
            "reservationSlot"
          ],
          "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}"
        }
      }
    },
    "instantSnapshots": {
      "methods": {
        "setLabels": {
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "id": "compute.instantSnapshots.setLabels",
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels",
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ZoneSetLabelsRequest"
          },
          "description": "Sets the labels on a instantSnapshot in the given zone. To learn more about\nlabels, read the Labeling\nResources documentation."
        },
        "aggregatedList": {
          "response": {
            "$ref": "InstantSnapshotAggregatedList"
          },
          "description": "Retrieves an aggregated list of instantSnapshots.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "includeAllScopes": {
              "type": "boolean",
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "default": "500",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/aggregated/instantSnapshots",
          "path": "projects/{project}/aggregated/instantSnapshots",
          "id": "compute.instantSnapshots.aggregatedList",
          "parameterOrder": [
            "project"
          ]
        },
        "getIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy",
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "id": "compute.instantSnapshots.getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "httpMethod": "GET",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "type": "integer",
              "location": "query",
              "description": "Requested IAM Policy version.",
              "format": "int32"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ]
        },
        "insert": {
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instantSnapshots.insert",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "path": "projects/{project}/zones/{zone}/instantSnapshots",
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots",
          "request": {
            "$ref": "InstantSnapshot"
          },
          "description": "Creates an instant snapshot in the specified zone."
        },
        "get": {
          "response": {
            "$ref": "InstantSnapshot"
          },
          "description": "Returns the specified InstantSnapshot resource in the specified zone.",
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instantSnapshot"
          ],
          "id": "compute.instantSnapshots.get",
          "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "instantSnapshot": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the InstantSnapshot resource to return.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            }
          },
          "httpMethod": "GET"
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots",
          "response": {
            "$ref": "InstantSnapshotList"
          },
          "description": "Retrieves the list of InstantSnapshot resources contained within\nthe specified zone.",
          "parameters": {
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "maxResults": {
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "location": "query"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/zones/{zone}/instantSnapshots",
          "id": "compute.instantSnapshots.list"
        },
        "delete": {
          "parameters": {
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            },
            "instantSnapshot": {
              "location": "path",
              "required": true,
              "description": "Name of the InstantSnapshot resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "DELETE",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}",
          "id": "compute.instantSnapshots.delete",
          "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting\na single instantSnapshot might not necessarily delete all the data on that\ninstantSnapshot. If any data on the instantSnapshot that is marked for\ndeletion is needed for subsequent instantSnapshots, the data will be moved\nto the next corresponding instantSnapshot.\n\nFor more information, seeDeleting\ninstantSnapshots.",
          "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}",
          "parameterOrder": [
            "project",
            "zone",
            "instantSnapshot"
          ]
        },
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "compute.instantSnapshots.testIamPermissions",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions"
        },
        "setIamPolicy": {
          "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "response": {
            "$ref": "Policy"
          },
          "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "compute.instantSnapshots.setIamPolicy",
          "httpMethod": "POST",
          "request": {
            "$ref": "ZoneSetPolicyRequest"
          }
        }
      }
    },
    "images": {
      "methods": {
        "delete": {
          "httpMethod": "DELETE",
          "path": "projects/{project}/global/images/{image}",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "image": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the image resource to delete."
            }
          },
          "parameterOrder": [
            "project",
            "image"
          ],
          "description": "Deletes the specified image.",
          "flatPath": "projects/{project}/global/images/{image}",
          "id": "compute.images.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "parameterOrder": [
            "project",
            "image"
          ],
          "flatPath": "projects/{project}/global/images/{image}",
          "httpMethod": "GET",
          "id": "compute.images.get",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "image": {
              "description": "Name of the image resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Image"
          },
          "path": "projects/{project}/global/images/{image}",
          "description": "Returns the specified image.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "getFromFamily": {
          "parameterOrder": [
            "project",
            "family"
          ],
          "flatPath": "projects/{project}/global/images/family/{family}",
          "description": "Returns the latest image that is part of an image family and is not\ndeprecated. For more information on image families, seePublic\nimage families documentation.",
          "path": "projects/{project}/global/images/family/{family}",
          "response": {
            "$ref": "Image"
          },
          "id": "compute.images.getFromFamily",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "The image project that the image belongs to. For example, to get a CentOS\nimage, specify centos-cloud as the image project."
            },
            "family": {
              "description": "Name of the image family to search for.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "httpMethod": "GET"
        },
        "getIamPolicy": {
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "response": {
            "$ref": "Policy"
          },
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "type": "integer",
              "description": "Requested IAM Policy version.",
              "location": "query"
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/images/{resource}/getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.images.getIamPolicy"
        },
        "setLabels": {
          "flatPath": "projects/{project}/global/images/{resource}/setLabels",
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "description": "Sets the labels on an image. To learn more about labels, read theLabeling\nResources documentation.",
          "path": "projects/{project}/global/images/{resource}/setLabels",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "id": "compute.images.setLabels"
        },
        "list": {
          "path": "projects/{project}/global/images",
          "httpMethod": "GET",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "format": "uint32",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "description": "Retrieves the list of custom images\navailable to the specified project. Custom images are images you\ncreate that belong to your project. This method does not\nget any images that belong to other projects, including publicly-available\nimages, like Debian 8. If you want to get a list of publicly-available\nimages, use this method to make a request to the respective image project,\nsuch as debian-cloud or windows-cloud.",
          "flatPath": "projects/{project}/global/images",
          "id": "compute.images.list",
          "response": {
            "$ref": "ImageList"
          },
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Patches the specified image with the data included in the request.\nOnly the following fields can be modified: family, description,\ndeprecation status.",
          "flatPath": "projects/{project}/global/images/{image}",
          "path": "projects/{project}/global/images/{image}",
          "id": "compute.images.patch",
          "parameters": {
            "image": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the image resource to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project",
            "image"
          ],
          "httpMethod": "PATCH",
          "request": {
            "$ref": "Image"
          }
        },
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/images/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "flatPath": "projects/{project}/global/images/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "id": "compute.images.testIamPermissions"
        },
        "setIamPolicy": {
          "path": "projects/{project}/global/images/{resource}/setIamPolicy",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "id": "compute.images.setIamPolicy",
          "response": {
            "$ref": "Policy"
          }
        },
        "deprecate": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.images.deprecate",
          "parameters": {
            "image": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Image name.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "DeprecationStatus"
          },
          "path": "projects/{project}/global/images/{image}/deprecate",
          "flatPath": "projects/{project}/global/images/{image}/deprecate",
          "parameterOrder": [
            "project",
            "image"
          ],
          "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead."
        },
        "insert": {
          "request": {
            "$ref": "Image"
          },
          "id": "compute.images.insert",
          "description": "Creates an image in the specified project using the data included\nin the request.",
          "path": "projects/{project}/global/images",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "forceCreate": {
              "location": "query",
              "description": "Force image creation if true.",
              "type": "boolean"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/images",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        }
      }
    },
    "licenseCodes": {
      "methods": {
        "getIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "format": "int32",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.licenseCodes.getIamPolicy",
          "flatPath": "projects/{project}/global/licenseCodes/{resource}/getIamPolicy",
          "path": "projects/{project}/global/licenseCodes/{resource}/getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages."
        },
        "setIamPolicy": {
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "path": "projects/{project}/global/licenseCodes/{resource}/setIamPolicy",
          "flatPath": "projects/{project}/global/licenseCodes/{resource}/setIamPolicy",
          "id": "compute.licenseCodes.setIamPolicy",
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "response": {
            "$ref": "Policy"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ]
        },
        "get": {
          "path": "projects/{project}/global/licenseCodes/{licenseCode}",
          "response": {
            "$ref": "LicenseCode"
          },
          "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "licenseCode": {
              "description": "Number corresponding to the License code resource to return.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[0-9]{0,61}?"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "description": "Return a specified license code. License codes are mirrored across\nall projects that have permissions to read the License Code.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "parameterOrder": [
            "project",
            "licenseCode"
          ],
          "id": "compute.licenseCodes.get"
        },
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "id": "compute.licenseCodes.testIamPermissions",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "description": "Returns permissions that a caller has on the specified resource.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "resource"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          }
        }
      }
    },
    "projects": {
      "methods": {
        "setUsageExportBucket": {
          "request": {
            "$ref": "UsageExportLocation"
          },
          "path": "projects/{project}/setUsageExportBucket",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/devstorage.full_control",
            "https://www.googleapis.com/auth/devstorage.read_only",
            "https://www.googleapis.com/auth/devstorage.read_write"
          ],
          "flatPath": "projects/{project}/setUsageExportBucket",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Enables the usage export feature and sets theusage export bucket\nwhere reports are stored. If you provide an empty request body using this\nmethod, the usage export feature will be disabled.",
          "id": "compute.projects.setUsageExportBucket"
        },
        "moveDisk": {
          "request": {
            "$ref": "DiskMoveRequest"
          },
          "id": "compute.projects.moveDisk",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "deprecated": true,
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/moveDisk",
          "description": "Moves a persistent disk from one zone to another.\n*Note*: The moveDisk API will be deprecated on September 29, 2026.\n\nStarting September 29, 2025, you can't use the moveDisk API on new\nprojects. To move a disk to a different region or zone, follow the steps in\n[Change the location of a\ndisk](https://cloud.google.com/compute/docs/disks/migrate-to-hyperdisk#migrate-to-hd).\n\nProjects that already use the moveDisk API can continue usage until\nSeptember 29, 2026.\n\nStarting November 1, 2025, API responses will include a warning message in\nthe response body about the upcoming deprecation. You can skip the message\nto continue using the service without interruption.",
          "path": "projects/{project}/moveDisk"
        },
        "setCloudArmorTier": {
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/setCloudArmorTier",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "ProjectsSetCloudArmorTierRequest"
          },
          "description": "Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the\nbilling account of the project must be subscribed to Cloud Armor\nEnterprise. See Subscribing\nto Cloud Armor Enterprise for more information.",
          "path": "projects/{project}/setCloudArmorTier",
          "id": "compute.projects.setCloudArmorTier"
        },
        "listXpnHosts": {
          "description": "Lists all shared VPC host projects visible to the user in an organization.",
          "id": "compute.projects.listXpnHosts",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "location": "query",
              "default": "500",
              "format": "uint32"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ProjectsListXpnHostsRequest"
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "XpnHostList"
          },
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/listXpnHosts",
          "flatPath": "projects/{project}/listXpnHosts"
        },
        "getXpnResources": {
          "id": "compute.projects.getXpnResources",
          "description": "Gets service resources (a.k.a service project) associated with this host\nproject.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "format": "uint32",
              "minimum": "0",
              "type": "integer"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "ProjectsGetXpnResources"
          },
          "flatPath": "projects/{project}/getXpnResources",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/getXpnResources"
        },
        "setCommonInstanceMetadata": {
          "path": "projects/{project}/setCommonInstanceMetadata",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/setCommonInstanceMetadata",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "request": {
            "$ref": "Metadata"
          },
          "description": "Sets metadata common to all instances within the specified project using\nthe data included in the request.",
          "id": "compute.projects.setCommonInstanceMetadata"
        },
        "setDefaultNetworkTier": {
          "path": "projects/{project}/setDefaultNetworkTier",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Sets the default network tier of the project. The default network tier is\nused when an address/forwardingRule/instance is created without specifying\nthe network tier field.",
          "flatPath": "projects/{project}/setDefaultNetworkTier",
          "id": "compute.projects.setDefaultNetworkTier",
          "request": {
            "$ref": "ProjectsSetDefaultNetworkTierRequest"
          }
        },
        "disableXpnHost": {
          "path": "projects/{project}/disableXpnHost",
          "description": "Disable this project as a shared VPC host project.",
          "flatPath": "projects/{project}/disableXpnHost",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "id": "compute.projects.disableXpnHost",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          }
        },
        "enableXpnResource": {
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/enableXpnResource",
          "flatPath": "projects/{project}/enableXpnResource",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ProjectsEnableXpnResourceRequest"
          },
          "description": "Enable service resource (a.k.a service project) for a host project, so that\nsubnets in the host project can be used by instances in the service\nproject.",
          "id": "compute.projects.enableXpnResource"
        },
        "getXpnHost": {
          "id": "compute.projects.getXpnHost",
          "flatPath": "projects/{project}/getXpnHost",
          "path": "projects/{project}/getXpnHost",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Project"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "description": "Gets the shared VPC host project that this project links to. May be empty\nif no link exists."
        },
        "moveInstance": {
          "description": "Moves an instance and its attached persistent disks from one zone to\nanother.\n*Note*: Moving VMs or disks by using this method might\n cause unexpected behavior. For more information, see the [known\n issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior).\n[Deprecated] This method is deprecated. See [moving instance across\nzones](/compute/docs/instances/moving-instance-across-zones) instead.",
          "response": {
            "$ref": "Operation"
          },
          "deprecated": true,
          "id": "compute.projects.moveInstance",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/moveInstance",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "InstanceMoveRequest"
          },
          "httpMethod": "POST",
          "path": "projects/{project}/moveInstance",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          }
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified Project resource.\n\nTo decrease latency for this method, you can optionally omit any unneeded\ninformation from the response by using a field mask. This practice is\nespecially recommended for unused quota information (the `quotas` field).\nTo exclude one or more fields, set your request's `fields` query parameter\nto only include the fields you need. For example, to only include the `id`\nand `selfLink` fields, add the query parameter `?fields=id,selfLink` to\nyour request.",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}",
          "id": "compute.projects.get",
          "flatPath": "projects/{project}",
          "httpMethod": "GET",
          "response": {
            "$ref": "Project"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          }
        },
        "enableXpnHost": {
          "path": "projects/{project}/enableXpnHost",
          "id": "compute.projects.enableXpnHost",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project"
          ],
          "description": "Enable this project as a shared VPC host project.",
          "flatPath": "projects/{project}/enableXpnHost"
        },
        "disableXpnResource": {
          "description": "Disable a service resource (also known as service project) associated with\nthis host project.",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "id": "compute.projects.disableXpnResource",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/disableXpnResource",
          "flatPath": "projects/{project}/disableXpnResource",
          "request": {
            "$ref": "ProjectsDisableXpnResourceRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        }
      }
    },
    "regionTargetHttpsProxies": {
      "methods": {
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/targetHttpsProxies",
          "id": "compute.regionTargetHttpsProxies.list",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "default": "500"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "response": {
            "$ref": "TargetHttpsProxyList"
          },
          "description": "Retrieves the list of TargetHttpsProxy resources available\nto the specified project in the specified region.",
          "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies"
        },
        "setUrlMap": {
          "id": "compute.regionTargetHttpsProxies.setUrlMap",
          "parameterOrder": [
            "project",
            "region",
            "targetHttpsProxy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "UrlMapReference"
          },
          "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
          "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
          "parameters": {
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "targetHttpsProxy": {
              "description": "Name of the TargetHttpsProxy to set a URL map for.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "description": "Changes the URL map for TargetHttpsProxy.",
          "response": {
            "$ref": "Operation"
          }
        },
        "insert": {
          "path": "projects/{project}/regions/{region}/targetHttpsProxies",
          "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies",
          "description": "Creates a TargetHttpsProxy resource in the specified project and region\nusing the data included in the request.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionTargetHttpsProxies.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "TargetHttpsProxy"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request."
            }
          }
        },
        "setSslCertificates": {
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "targetHttpsProxy": {
              "description": "Name of the TargetHttpsProxy resource to set an\nSslCertificates resource for.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
          "description": "Replaces SslCertificates for TargetHttpsProxy.",
          "request": {
            "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
          },
          "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionTargetHttpsProxies.setSslCertificates",
          "parameterOrder": [
            "project",
            "region",
            "targetHttpsProxy"
          ]
        },
        "get": {
          "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
          "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
          "parameterOrder": [
            "project",
            "region",
            "targetHttpsProxy"
          ],
          "description": "Returns the specified TargetHttpsProxy resource in the specified region.",
          "response": {
            "$ref": "TargetHttpsProxy"
          },
          "id": "compute.regionTargetHttpsProxies.get",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "targetHttpsProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the TargetHttpsProxy resource to return.",
              "type": "string"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          }
        },
        "patch": {
          "parameterOrder": [
            "project",
            "region",
            "targetHttpsProxy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionTargetHttpsProxies.patch",
          "description": "Patches the specified regional TargetHttpsProxy resource with the data\nincluded in the request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "targetHttpsProxy": {
              "description": "Name of the TargetHttpsProxy resource to patch.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "request": {
            "$ref": "TargetHttpsProxy"
          },
          "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}"
        },
        "delete": {
          "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "id": "compute.regionTargetHttpsProxies.delete",
          "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "targetHttpsProxy": {
              "description": "Name of the TargetHttpsProxy resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request."
            }
          },
          "description": "Deletes the specified TargetHttpsProxy resource.",
          "parameterOrder": [
            "project",
            "region",
            "targetHttpsProxy"
          ]
        }
      }
    },
    "regionHealthCheckServices": {
      "methods": {
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified regional HealthCheckService.",
          "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
          "id": "compute.regionHealthCheckServices.delete",
          "httpMethod": "DELETE",
          "parameters": {
            "healthCheckService": {
              "type": "string",
              "description": "Name of the HealthCheckService to delete. The name\nmust be 1-63 characters long, and comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
          "parameterOrder": [
            "project",
            "region",
            "healthCheckService"
          ]
        },
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionHealthCheckServices.patch",
          "description": "Updates the specified regional HealthCheckService resource\nwith the data included in the request.  This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "healthCheckService": {
              "description": "Name of the HealthCheckService to update. The name\nmust be 1-63 characters long, and comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "region",
            "healthCheckService"
          ],
          "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
          "request": {
            "$ref": "HealthCheckService"
          }
        },
        "testIamPermissions": {
          "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.regionHealthCheckServices.testIamPermissions",
          "httpMethod": "POST"
        },
        "aggregatedList": {
          "response": {
            "$ref": "HealthCheckServiceAggregatedList"
          },
          "parameterOrder": [
            "project"
          ],
          "description": "Retrieves the list of all HealthCheckService resources,\nregional and global, available to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/healthCheckServices",
          "path": "projects/{project}/aggregated/healthCheckServices",
          "id": "compute.regionHealthCheckServices.aggregatedList",
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "includeAllScopes": {
              "location": "query",
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "default": "500"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "description": "Name of the project scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "flatPath": "projects/{project}/regions/{region}/healthCheckServices",
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Lists all the HealthCheckService resources that have been\nconfigured for the specified project in the given region.",
          "path": "projects/{project}/regions/{region}/healthCheckServices",
          "response": {
            "$ref": "HealthCheckServicesList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "maxResults": {
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.regionHealthCheckServices.list"
        },
        "insert": {
          "flatPath": "projects/{project}/regions/{region}/healthCheckServices",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionHealthCheckServices.insert",
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/healthCheckServices",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "request": {
            "$ref": "HealthCheckService"
          },
          "description": "Creates a regional HealthCheckService resource in the\nspecified project and region using the data included in the request."
        },
        "get": {
          "parameterOrder": [
            "project",
            "region",
            "healthCheckService"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "healthCheckService": {
              "description": "Name of the HealthCheckService to update. The name\nmust be 1-63 characters long, and comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
          "response": {
            "$ref": "HealthCheckService"
          },
          "id": "compute.regionHealthCheckServices.get",
          "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
          "description": "Returns the specified regional HealthCheckService resource."
        }
      }
    },
    "rollouts": {
      "methods": {
        "advance": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/rollouts/{rollout}/advance",
          "parameterOrder": [
            "project",
            "rollout"
          ],
          "path": "projects/{project}/global/rollouts/{rollout}/advance",
          "response": {
            "$ref": "Operation"
          },
          "description": "Advances a Rollout to the next wave, or completes it if no waves remain.",
          "id": "compute.rollouts.advance",
          "httpMethod": "POST",
          "parameters": {
            "rollout": {
              "description": "Required. Name of the Rollout resource to advance.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Required. Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "currentWaveNumber": {
              "description": "Required. Wave number of the current wave.",
              "type": "string",
              "format": "int64",
              "location": "query"
            }
          }
        },
        "list": {
          "path": "projects/{project}/global/rollouts",
          "description": "Lists Rollouts in a given project and location.",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/rollouts",
          "id": "compute.rollouts.list",
          "response": {
            "$ref": "RolloutsListResponse"
          },
          "parameterOrder": [
            "project"
          ]
        },
        "cancel": {
          "id": "compute.rollouts.cancel",
          "parameterOrder": [
            "project",
            "rollout"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "rollout": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Rollout resource to cancel."
            },
            "rollback": {
              "description": "Optional. If true, then the ongoing rollout must be rolled back. Else, just cancel\nthe rollout without taking any further actions. Note that products must\nsupport at least one of these options, however, it does not need to support\nboth.",
              "location": "query",
              "type": "boolean"
            }
          },
          "httpMethod": "PATCH",
          "flatPath": "projects/{project}/global/rollouts/{rollout}",
          "path": "projects/{project}/global/rollouts/{rollout}",
          "description": "Cancels a Rollout.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "resume": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "rollout"
          ],
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "etag": {
              "location": "query",
              "type": "string",
              "description": "The etag of the Rollout.\nIf this is provided, the request will only succeed if the etag matches\nthe current etag of the Rollout."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Required. Project ID for this request.",
              "type": "string"
            },
            "rollout": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Required. Name of the Rollout resource to resume.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.rollouts.resume",
          "flatPath": "projects/{project}/global/rollouts/{rollout}/resume",
          "path": "projects/{project}/global/rollouts/{rollout}/resume",
          "description": "Resumes a Rollout.",
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/rollouts/{rollout}",
          "parameterOrder": [
            "project",
            "rollout"
          ],
          "id": "compute.rollouts.get",
          "description": "Gets details of a single project-scoped Rollout.",
          "parameters": {
            "rollout": {
              "description": "Name of the persistent rollout to return.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/global/rollouts/{rollout}",
          "httpMethod": "GET",
          "response": {
            "$ref": "Rollout"
          }
        },
        "pause": {
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "rollout"
          ],
          "description": "Pauses a Rollout.",
          "flatPath": "projects/{project}/global/rollouts/{rollout}/pause",
          "id": "compute.rollouts.pause",
          "path": "projects/{project}/global/rollouts/{rollout}/pause",
          "parameters": {
            "etag": {
              "type": "string",
              "location": "query",
              "description": "The etag of the Rollout.\nIf this is provided, the request will only succeed if the etag matches\nthe current etag of the Rollout."
            },
            "rollout": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Required. Name of the Rollout resource to pause."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Required. Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "delete": {
          "description": "Deletes a Rollout.",
          "parameterOrder": [
            "project",
            "rollout"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "rollout": {
              "location": "path",
              "required": true,
              "description": "Name of the Rollout resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/global/rollouts/{rollout}",
          "id": "compute.rollouts.delete",
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/rollouts/{rollout}"
        }
      }
    },
    "zoneOperations": {
      "methods": {
        "wait": {
          "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait",
          "path": "projects/{project}/zones/{zone}/operations/{operation}/wait",
          "parameterOrder": [
            "project",
            "zone",
            "operation"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Waits for the specified Operation resource to return as `DONE`\nor for the request to approach the 2 minute deadline, and retrieves the\nspecified Operation resource. This method waits for no more than the\n2 minutes and then returns the current state of the\noperation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:\n   \n   \n    - In uncommon cases, when the server is overloaded, the request might\n    return before the default deadline is reached, or might return after zero\n    seconds.\n   - If the default deadline is reached, there is no guarantee that the\n    operation is actually done when the method returns. Be prepared to retry\n    if the operation is not `DONE`.",
          "id": "compute.zoneOperations.wait",
          "httpMethod": "POST",
          "parameters": {
            "operation": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the Operations resource to return, or its unique numeric\nidentifier."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "path": "projects/{project}/zones/{zone}/operations",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/operations",
          "httpMethod": "GET",
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the zone for request."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "maxResults": {
              "default": "500",
              "minimum": "0",
              "location": "query",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "OperationList"
          },
          "description": "Retrieves a list of Operation resources contained within\nthe specified zone.",
          "id": "compute.zoneOperations.list"
        },
        "get": {
          "flatPath": "projects/{project}/zones/{zone}/operations/{operation}",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone",
            "operation"
          ],
          "parameters": {
            "zone": {
              "description": "Name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "operation": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.zoneOperations.get",
          "path": "projects/{project}/zones/{zone}/operations/{operation}",
          "description": "Retrieves the specified zone-specific Operations resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "delete": {
          "parameters": {
            "zone": {
              "description": "Name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "operation": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "description": "Deletes the specified zone-specific Operations resource.",
          "httpMethod": "DELETE",
          "flatPath": "projects/{project}/zones/{zone}/operations/{operation}",
          "path": "projects/{project}/zones/{zone}/operations/{operation}",
          "parameterOrder": [
            "project",
            "zone",
            "operation"
          ],
          "id": "compute.zoneOperations.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        }
      }
    },
    "backendServices": {
      "methods": {
        "setSecurityPolicy": {
          "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
          "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.backendServices.setSecurityPolicy",
          "httpMethod": "POST",
          "description": "Sets the Google Cloud Armor security policy for the specified backend\nservice. For more information, seeGoogle\nCloud Armor Overview",
          "parameters": {
            "backendService": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the BackendService resource to which the security policy should be\nset. The name should conform to RFC1035."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "request": {
            "$ref": "SecurityPolicyReference"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "backendService"
          ]
        },
        "aggregatedList": {
          "parameterOrder": [
            "project"
          ],
          "id": "compute.backendServices.aggregatedList",
          "path": "projects/{project}/aggregated/backendServices",
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "includeAllScopes": {
              "location": "query",
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Name of the project scoping this request."
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "default": "500"
            },
            "serviceProjectNumber": {
              "location": "query",
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/aggregated/backendServices",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "BackendServiceAggregatedList"
          },
          "description": "Retrieves the list of all BackendService resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`."
        },
        "deleteSignedUrlKey": {
          "parameterOrder": [
            "project",
            "backendService",
            "keyName"
          ],
          "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "keyName": {
              "location": "query",
              "required": true,
              "description": "The name of the Signed URL Key to delete.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "backendService": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the BackendService resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "id": "compute.backendServices.deleteSignedUrlKey",
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes a key for validating requests with signed URLs for this backend\nservice.",
          "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey"
        },
        "getIamPolicy": {
          "path": "projects/{project}/global/backendServices/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "flatPath": "projects/{project}/global/backendServices/{resource}/getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Policy"
          },
          "httpMethod": "GET",
          "id": "compute.backendServices.getIamPolicy",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "location": "query",
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "format": "int32"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            }
          }
        },
        "getEffectiveSecurityPolicies": {
          "parameterOrder": [
            "project",
            "backendService"
          ],
          "parameters": {
            "backendService": {
              "description": "Name of the Backend Service for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "projects/{project}/global/backendServices/{backendService}/getEffectiveSecurityPolicies",
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/backendServices/{backendService}/getEffectiveSecurityPolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.backendServices.getEffectiveSecurityPolicies",
          "description": "Returns effective security policies applied to this backend service."
        },
        "addSignedUrlKey": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.backendServices.addSignedUrlKey",
          "parameters": {
            "backendService": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the BackendService resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "description": "Adds a key for validating requests with signed URLs for this backend\nservice.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
          "parameterOrder": [
            "project",
            "backendService"
          ],
          "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
          "request": {
            "$ref": "SignedUrlKey"
          }
        },
        "listUsable": {
          "id": "compute.backendServices.listUsable",
          "path": "projects/{project}/global/backendServices/listUsable",
          "description": "Retrieves a list of all usable backend services for Application Load\nBalancers and Proxy Network Load Balancers in the specified project.\nBackend services for external and internal passthrough Network Load\nBalancers are not included in the response.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/global/backendServices/listUsable",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "default": "500",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "response": {
            "$ref": "BackendServiceListUsable"
          }
        },
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "id": "compute.backendServices.testIamPermissions",
          "flatPath": "projects/{project}/global/backendServices/{resource}/testIamPermissions",
          "path": "projects/{project}/global/backendServices/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setEdgeSecurityPolicy": {
          "flatPath": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy",
          "id": "compute.backendServices.setEdgeSecurityPolicy",
          "request": {
            "$ref": "SecurityPolicyReference"
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "backendService"
          ],
          "path": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy",
          "httpMethod": "POST",
          "description": "Sets the edge security policy for the specified backend service.",
          "parameters": {
            "backendService": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the BackendService resource to which the edge security policy\nshould be set. The name should conform to RFC1035."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          }
        },
        "setIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "id": "compute.backendServices.setIamPolicy",
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "flatPath": "projects/{project}/global/backendServices/{resource}/setIamPolicy",
          "httpMethod": "POST",
          "path": "projects/{project}/global/backendServices/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "backendService"
          ],
          "id": "compute.backendServices.patch",
          "flatPath": "projects/{project}/global/backendServices/{backendService}",
          "path": "projects/{project}/global/backendServices/{backendService}",
          "response": {
            "$ref": "Operation"
          },
          "description": "Patches the specified BackendService resource with the data included in the\nrequest. For more information, see \nBackend services overview. This method\nsupports PATCH semantics and uses the JSON merge\npatch format and processing rules.",
          "request": {
            "$ref": "BackendService"
          },
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "backendService": {
              "description": "Name of the BackendService resource to patch.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          }
        },
        "get": {
          "path": "projects/{project}/global/backendServices/{backendService}",
          "description": "Returns the specified BackendService resource.",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "backendService"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "backendService": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the BackendService resource to return."
            }
          },
          "response": {
            "$ref": "BackendService"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/backendServices/{backendService}",
          "id": "compute.backendServices.get"
        },
        "delete": {
          "description": "Deletes the specified BackendService resource.",
          "flatPath": "projects/{project}/global/backendServices/{backendService}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "backendService": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the BackendService resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.backendServices.delete",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/backendServices/{backendService}",
          "parameterOrder": [
            "project",
            "backendService"
          ]
        },
        "update": {
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "backendService": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendService resource to update.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "PUT",
          "request": {
            "$ref": "BackendService"
          },
          "parameterOrder": [
            "project",
            "backendService"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.backendServices.update",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/backendServices/{backendService}",
          "flatPath": "projects/{project}/global/backendServices/{backendService}",
          "description": "Updates the specified BackendService resource with the data included in the\nrequest. For more information, seeBackend\nservices overview."
        },
        "getHealth": {
          "response": {
            "$ref": "BackendServiceGroupHealth"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "backendService": {
              "description": "Name of the BackendService resource to which the queried instance belongs.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth",
          "id": "compute.backendServices.getHealth",
          "description": "Gets the most recent health check results for this\nBackendService.\n\nExample request body:\n\n{\n  \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\"\n}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/backendServices/{backendService}/getHealth",
          "parameterOrder": [
            "project",
            "backendService"
          ],
          "request": {
            "$ref": "ResourceGroupReference"
          }
        },
        "list": {
          "description": "Retrieves the list of BackendService resources available to the specified\nproject.",
          "path": "projects/{project}/global/backendServices",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.backendServices.list",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "BackendServiceList"
          },
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "default": "500",
              "minimum": "0",
              "format": "uint32"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/backendServices"
        },
        "insert": {
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "description": "Creates a BackendService resource in the specified project using\nthe data included in the request. For more information, see\nBackend services overview.",
          "id": "compute.backendServices.insert",
          "flatPath": "projects/{project}/global/backendServices",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/backendServices",
          "request": {
            "$ref": "BackendService"
          }
        }
      }
    },
    "interconnectAttachmentGroups": {
      "methods": {
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Patches the specified InterconnectAttachmentGroup resource with the data\nincluded in the request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder"
            },
            "interconnectAttachmentGroup": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the InterconnectAttachmentGroup resource to patch.",
              "type": "string"
            },
            "updateMask": {
              "format": "google-fieldmask",
              "description": "The list of fields to update.",
              "type": "string",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project",
            "interconnectAttachmentGroup"
          ],
          "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}",
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}",
          "request": {
            "$ref": "InterconnectAttachmentGroup"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.interconnectAttachmentGroups.patch"
        },
        "setIamPolicy": {
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{resource}/setIamPolicy",
          "id": "compute.interconnectAttachmentGroups.setIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/interconnectAttachmentGroups/{resource}/setIamPolicy"
        },
        "get": {
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "interconnectAttachmentGroup": {
              "description": "Name of the InterconnectAttachmentGroup resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "compute.interconnectAttachmentGroups.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "interconnectAttachmentGroup"
          ],
          "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}",
          "response": {
            "$ref": "InterconnectAttachmentGroup"
          },
          "description": "Returns the specified InterconnectAttachmentGroup resource in the given\nscope.",
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}"
        },
        "insert": {
          "description": "Creates a InterconnectAttachmentGroup in the specified project in the given\nscope using the parameters that are included in the request.",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/interconnectAttachmentGroups",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "InterconnectAttachmentGroup"
          },
          "id": "compute.interconnectAttachmentGroups.insert",
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project"
          ]
        },
        "getOperationalStatus": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the InterconnectAttachmentStatuses for the specified\nInterconnectAttachmentGroup resource.",
          "id": "compute.interconnectAttachmentGroups.getOperationalStatus",
          "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}/getOperationalStatus",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "interconnectAttachmentGroup": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the interconnectAttachmentGroup resource to query."
            }
          },
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}/getOperationalStatus",
          "response": {
            "$ref": "InterconnectAttachmentGroupsGetOperationalStatusResponse"
          },
          "parameterOrder": [
            "project",
            "interconnectAttachmentGroup"
          ]
        },
        "list": {
          "path": "projects/{project}/global/interconnectAttachmentGroups",
          "response": {
            "$ref": "InterconnectAttachmentGroupsListResponse"
          },
          "description": "Lists the InterconnectAttachmentGroups for a project in the given scope.",
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.interconnectAttachmentGroups.list",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "maxResults": {
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "format": "uint32",
              "type": "integer",
              "minimum": "0"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project"
          ]
        },
        "getIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/interconnectAttachmentGroups/{resource}/getIamPolicy",
          "id": "compute.interconnectAttachmentGroups.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "httpMethod": "GET",
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "type": "integer",
              "location": "query",
              "description": "Requested IAM Policy version."
            }
          },
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          }
        },
        "delete": {
          "parameterOrder": [
            "project",
            "interconnectAttachmentGroup"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "interconnectAttachmentGroup": {
              "description": "Name of the InterconnectAttachmentGroup resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}",
          "description": "Deletes the specified InterconnectAttachmentGroup in the given scope",
          "id": "compute.interconnectAttachmentGroups.delete",
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}"
        },
        "testIamPermissions": {
          "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/global/interconnectAttachmentGroups/{resource}/testIamPermissions",
          "id": "compute.interconnectAttachmentGroups.testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        }
      }
    },
    "snapshotSettings": {
      "methods": {
        "patch": {
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Patch snapshot settings.",
          "flatPath": "projects/{project}/global/snapshotSettings",
          "request": {
            "$ref": "SnapshotSettings"
          },
          "id": "compute.snapshotSettings.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/snapshotSettings",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "updateMask": {
              "format": "google-fieldmask",
              "location": "query",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "type": "string"
            }
          },
          "httpMethod": "PATCH"
        },
        "get": {
          "flatPath": "projects/{project}/global/snapshotSettings",
          "path": "projects/{project}/global/snapshotSettings",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "SnapshotSettings"
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "description": "Get snapshot settings.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.snapshotSettings.get"
        }
      }
    },
    "regionSslCertificates": {
      "methods": {
        "list": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/sslCertificates",
          "response": {
            "$ref": "SslCertificateList"
          },
          "description": "Retrieves the list of SslCertificate resources available to the specified\nproject in the specified region.",
          "id": "compute.regionSslCertificates.list",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "minimum": "0",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/sslCertificates",
          "httpMethod": "GET"
        },
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified SslCertificate resource in the region.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
          "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
          "id": "compute.regionSslCertificates.delete",
          "parameterOrder": [
            "project",
            "region",
            "sslCertificate"
          ],
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "sslCertificate": {
              "description": "Name of the SslCertificate resource to delete.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "httpMethod": "DELETE"
        },
        "insert": {
          "id": "compute.regionSslCertificates.insert",
          "flatPath": "projects/{project}/regions/{region}/sslCertificates",
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Creates a SslCertificate resource in the specified project and region using\nthe data included in the request",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SslCertificate"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/sslCertificates",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          }
        },
        "get": {
          "response": {
            "$ref": "SslCertificate"
          },
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "sslCertificate": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the SslCertificate resource to return.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
          "parameterOrder": [
            "project",
            "region",
            "sslCertificate"
          ],
          "id": "compute.regionSslCertificates.get",
          "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
          "description": "Returns the specified SslCertificate resource in the specified region. Get\na list of available SSL certificates by making a list()\nrequest."
        }
      }
    },
    "reliabilityRisks": {
      "methods": {
        "get": {
          "flatPath": "projects/{project}/global/reliabilityRisks/{reliabilityRisk}",
          "path": "projects/{project}/global/reliabilityRisks/{reliabilityRisk}",
          "parameterOrder": [
            "project",
            "reliabilityRisk"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "ReliabilityRisk"
          },
          "parameters": {
            "reliabilityRisk": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the ReliabilityRisk resource to return."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "id": "compute.reliabilityRisks.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified ReliabilityRisk resource."
        },
        "list": {
          "id": "compute.reliabilityRisks.list",
          "path": "projects/{project}/global/reliabilityRisks",
          "description": "Retrieves the list of reliabilityRisks available in the specified project.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/reliabilityRisks",
          "parameters": {
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "type": "integer",
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "ReliabilityRisksListResponse"
          }
        }
      }
    },
    "vpnTunnels": {
      "methods": {
        "delete": {
          "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
          "description": "Deletes the specified VpnTunnel resource.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.vpnTunnels.delete",
          "parameterOrder": [
            "project",
            "region",
            "vpnTunnel"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            },
            "vpnTunnel": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the VpnTunnel resource to delete."
            }
          },
          "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "get": {
          "description": "Returns the specified VpnTunnel resource.",
          "response": {
            "$ref": "VpnTunnel"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
          "parameterOrder": [
            "project",
            "region",
            "vpnTunnel"
          ],
          "id": "compute.vpnTunnels.get",
          "httpMethod": "GET",
          "parameters": {
            "vpnTunnel": {
              "description": "Name of the VpnTunnel resource to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}"
        },
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/vpnTunnels",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/vpnTunnels",
          "request": {
            "$ref": "VpnTunnel"
          },
          "id": "compute.vpnTunnels.insert",
          "description": "Creates a VpnTunnel resource in the specified project and region using\nthe data included in the request.",
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          }
        },
        "list": {
          "id": "compute.vpnTunnels.list",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/vpnTunnels",
          "httpMethod": "GET",
          "description": "Retrieves a list of VpnTunnel resources contained in the specified\nproject and region.",
          "parameters": {
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "default": "500"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/vpnTunnels",
          "response": {
            "$ref": "VpnTunnelList"
          }
        },
        "aggregatedList": {
          "parameters": {
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "default": "500",
              "location": "query",
              "format": "uint32"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "format": "int64",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/aggregated/vpnTunnels",
          "description": "Retrieves an aggregated list of VPN tunnels.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "response": {
            "$ref": "VpnTunnelAggregatedList"
          },
          "id": "compute.vpnTunnels.aggregatedList",
          "flatPath": "projects/{project}/aggregated/vpnTunnels"
        },
        "setLabels": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.vpnTunnels.setLabels",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "httpMethod": "POST",
          "description": "Sets the labels on a VpnTunnel. To learn more about labels, read theLabeling\nResources documentation.",
          "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
          "request": {
            "$ref": "RegionSetLabelsRequest"
          }
        }
      }
    },
    "networkEdgeSecurityServices": {
      "methods": {
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Gets a specified NetworkEdgeSecurityService.",
          "parameterOrder": [
            "project",
            "region",
            "networkEdgeSecurityService"
          ],
          "id": "compute.networkEdgeSecurityServices.get",
          "parameters": {
            "networkEdgeSecurityService": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the network edge security service to get.",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "NetworkEdgeSecurityService"
          },
          "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}",
          "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}"
        },
        "aggregatedList": {
          "httpMethod": "GET",
          "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to\nthe specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameters": {
            "maxResults": {
              "format": "uint32",
              "default": "500",
              "type": "integer",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "serviceProjectNumber": {
              "location": "query",
              "type": "string",
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "project": {
              "description": "Name of the project scoping this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/aggregated/networkEdgeSecurityServices",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices",
          "id": "compute.networkEdgeSecurityServices.aggregatedList",
          "response": {
            "$ref": "NetworkEdgeSecurityServiceAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "delete": {
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "networkEdgeSecurityService": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the network edge security service to delete."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "networkEdgeSecurityService"
          ],
          "description": "Deletes the specified service.",
          "id": "compute.networkEdgeSecurityServices.delete"
        },
        "insert": {
          "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices",
          "httpMethod": "POST",
          "description": "Creates a new service in the specified project using the data included in\nthe request.",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "validateOnly": {
              "type": "boolean",
              "description": "If true, the request will not be committed.",
              "location": "query"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices",
          "id": "compute.networkEdgeSecurityServices.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "NetworkEdgeSecurityService"
          }
        },
        "patch": {
          "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}",
          "parameterOrder": [
            "project",
            "region",
            "networkEdgeSecurityService"
          ],
          "request": {
            "$ref": "NetworkEdgeSecurityService"
          },
          "description": "Patches the specified policy with the data included in the request.",
          "parameters": {
            "paths": {
              "repeated": true,
              "location": "query",
              "type": "string"
            },
            "networkEdgeSecurityService": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the network edge security service to update.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "updateMask": {
              "location": "query",
              "type": "string",
              "description": "Indicates fields to be updated as part of this request.",
              "format": "google-fieldmask"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}",
          "httpMethod": "PATCH",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.networkEdgeSecurityServices.patch"
        }
      }
    },
    "targetInstances": {
      "methods": {
        "delete": {
          "id": "compute.targetInstances.delete",
          "parameterOrder": [
            "project",
            "zone",
            "targetInstance"
          ],
          "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
          "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified TargetInstance resource.",
          "httpMethod": "DELETE",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "targetInstance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the TargetInstance resource to delete.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone scoping this request."
            }
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "aggregatedList": {
          "id": "compute.targetInstances.aggregatedList",
          "path": "projects/{project}/aggregated/targetInstances",
          "parameterOrder": [
            "project"
          ],
          "description": "Retrieves an aggregated list of target instances.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/aggregated/targetInstances",
          "httpMethod": "GET",
          "response": {
            "$ref": "TargetInstanceAggregatedList"
          },
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query"
            },
            "serviceProjectNumber": {
              "type": "string",
              "format": "int64",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            }
          }
        },
        "setSecurityPolicy": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone scoping this request.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "targetInstance": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the TargetInstance resource to which the security policy should be\nset. The name should conform to RFC1035."
            }
          },
          "id": "compute.targetInstances.setSecurityPolicy",
          "httpMethod": "POST",
          "description": "Sets the Google Cloud Armor security policy for the specified target\ninstance. For more information, seeGoogle\nCloud Armor Overview",
          "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy",
          "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy",
          "parameterOrder": [
            "project",
            "zone",
            "targetInstance"
          ],
          "request": {
            "$ref": "SecurityPolicyReference"
          }
        },
        "get": {
          "parameterOrder": [
            "project",
            "zone",
            "targetInstance"
          ],
          "description": "Returns the specified TargetInstance resource.",
          "id": "compute.targetInstances.get",
          "response": {
            "$ref": "TargetInstance"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the zone scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "targetInstance": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetInstance resource to return.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}"
        },
        "testIamPermissions": {
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
          "id": "compute.targetInstances.testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "insert": {
          "flatPath": "projects/{project}/zones/{zone}/targetInstances",
          "request": {
            "$ref": "TargetInstance"
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.targetInstances.insert",
          "path": "projects/{project}/zones/{zone}/targetInstances",
          "description": "Creates a TargetInstance resource in the specified project and zone using\nthe data included in the request.",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone scoping this request.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "list": {
          "parameterOrder": [
            "project",
            "zone"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "zone": {
              "description": "Name of the zone scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "format": "uint32",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of TargetInstance resources available to the specified\nproject and zone.",
          "response": {
            "$ref": "TargetInstanceList"
          },
          "flatPath": "projects/{project}/zones/{zone}/targetInstances",
          "path": "projects/{project}/zones/{zone}/targetInstances",
          "id": "compute.targetInstances.list"
        }
      }
    },
    "addresses": {
      "methods": {
        "setLabels": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Sets the labels on an Address. To learn more about labels, read theLabeling\nResources documentation.",
          "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.addresses.setLabels",
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The region for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "path": "projects/{project}/regions/{region}/addresses/{resource}/setLabels",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ]
        },
        "move": {
          "path": "projects/{project}/regions/{region}/addresses/{address}/move",
          "flatPath": "projects/{project}/regions/{region}/addresses/{address}/move",
          "httpMethod": "POST",
          "description": "Moves the specified address resource.",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "description": "Source project ID which the Address is moved from.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true
            },
            "address": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the address resource to move.",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.addresses.move",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "address"
          ],
          "request": {
            "$ref": "RegionAddressesMoveRequest"
          }
        },
        "insert": {
          "path": "projects/{project}/regions/{region}/addresses",
          "flatPath": "projects/{project}/regions/{region}/addresses",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "Address"
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "description": "Creates an address resource in the specified project by using the data\nincluded in the request.",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "id": "compute.addresses.insert"
        },
        "aggregatedList": {
          "id": "compute.addresses.aggregatedList",
          "parameters": {
            "maxResults": {
              "type": "integer",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "location": "query",
              "minimum": "0"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "serviceProjectNumber": {
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "AddressAggregatedList"
          },
          "description": "Retrieves an aggregated list of addresses.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/addresses",
          "path": "projects/{project}/aggregated/addresses",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/addresses",
          "response": {
            "$ref": "AddressList"
          },
          "description": "Retrieves a list of addresses contained within\nthe specified region.",
          "flatPath": "projects/{project}/regions/{region}/addresses",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "maxResults": {
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "id": "compute.addresses.list"
        },
        "get": {
          "parameterOrder": [
            "project",
            "region",
            "address"
          ],
          "httpMethod": "GET",
          "id": "compute.addresses.get",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "address": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the address resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "description": "Returns the specified address resource.",
          "flatPath": "projects/{project}/regions/{region}/addresses/{address}",
          "path": "projects/{project}/regions/{region}/addresses/{address}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Address"
          }
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "address"
          ],
          "flatPath": "projects/{project}/regions/{region}/addresses/{address}",
          "description": "Deletes the specified address resource.",
          "id": "compute.addresses.delete",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "address": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the address resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region for this request."
            }
          },
          "httpMethod": "DELETE",
          "path": "projects/{project}/regions/{region}/addresses/{address}"
        },
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.addresses.testIamPermissions",
          "path": "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        }
      }
    },
    "regionDiskTypes": {
      "methods": {
        "list": {
          "flatPath": "projects/{project}/regions/{region}/diskTypes",
          "id": "compute.regionDiskTypes.list",
          "response": {
            "$ref": "RegionDiskTypeList"
          },
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "type": "integer",
              "minimum": "0",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/diskTypes",
          "description": "Retrieves a list of regional disk types available to the specified project."
        },
        "get": {
          "id": "compute.regionDiskTypes.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}",
          "response": {
            "$ref": "DiskType"
          },
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "diskType": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the disk type to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "diskType"
          ],
          "description": "Returns the specified regional disk type.",
          "path": "projects/{project}/regions/{region}/diskTypes/{diskType}"
        }
      }
    },
    "targetPools": {
      "methods": {
        "aggregatedList": {
          "path": "projects/{project}/aggregated/targetPools",
          "id": "compute.targetPools.aggregatedList",
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "serviceProjectNumber": {
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "location": "query",
              "type": "string"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/aggregated/targetPools",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "TargetPoolAggregatedList"
          },
          "description": "Retrieves an aggregated list of target pools.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`."
        },
        "getHealth": {
          "id": "compute.targetPools.getHealth",
          "description": "Gets the most recent health check results for each IP for the\ninstance that is referenced by the given target pool.",
          "response": {
            "$ref": "TargetPoolInstanceHealth"
          },
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "targetPool": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetPool resource to which the queried instance belongs.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "InstanceReference"
          },
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ]
        },
        "removeHealthCheck": {
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetPoolsRemoveHealthCheckRequest"
          },
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Removes health check URL from a target pool.",
          "httpMethod": "POST",
          "id": "compute.targetPools.removeHealthCheck",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true
            },
            "targetPool": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the target pool to remove health checks from.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          }
        },
        "removeInstance": {
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "targetPool": {
              "type": "string",
              "description": "Name of the TargetPool resource to remove instances from.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "description": "Removes instance URL from a target pool.",
          "request": {
            "$ref": "TargetPoolsRemoveInstanceRequest"
          },
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.targetPools.removeInstance"
        },
        "setBackup": {
          "id": "compute.targetPools.setBackup",
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "request": {
            "$ref": "TargetReference"
          },
          "description": "Changes a backup target pool's configurations.",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "failoverRatio": {
              "location": "query",
              "type": "number",
              "format": "float",
              "description": "New failoverRatio value for the target pool."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "targetPool": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetPool resource to set a backup pool for."
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "delete": {
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "httpMethod": "DELETE",
          "description": "Deletes the specified target pool.",
          "parameters": {
            "targetPool": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the TargetPool resource to delete."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
          "id": "compute.targetPools.delete",
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "addInstance": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "targetPool": {
              "description": "Name of the TargetPool resource to add instances to.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
          "description": "Adds an instance to a target pool.",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetPoolsAddInstanceRequest"
          },
          "id": "compute.targetPools.addInstance"
        },
        "list": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Retrieves a list of target pools available to the specified\nproject and region.",
          "response": {
            "$ref": "TargetPoolList"
          },
          "id": "compute.targetPools.list",
          "flatPath": "projects/{project}/regions/{region}/targetPools",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            }
          },
          "path": "projects/{project}/regions/{region}/targetPools",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "testIamPermissions": {
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.targetPools.testIamPermissions",
          "flatPath": "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request."
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "path": "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions"
        },
        "get": {
          "description": "Returns the specified target pool.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TargetPool"
          },
          "id": "compute.targetPools.get",
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}",
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "parameters": {
            "targetPool": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the TargetPool resource to return.",
              "type": "string"
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET"
        },
        "addHealthCheck": {
          "description": "Adds health check URLs to a target pool.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "targetPool": {
              "description": "Name of the target pool to add a health check to.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "request": {
            "$ref": "TargetPoolsAddHealthCheckRequest"
          },
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
          "id": "compute.targetPools.addHealthCheck"
        },
        "setSecurityPolicy": {
          "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the Google Cloud Armor security policy for the specified target pool.\nFor more information, seeGoogle\nCloud Armor Overview",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SecurityPolicyReference"
          },
          "parameterOrder": [
            "project",
            "region",
            "targetPool"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy",
          "parameters": {
            "targetPool": {
              "type": "string",
              "description": "Name of the TargetPool resource to which the security policy should be\nset. The name should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "id": "compute.targetPools.setSecurityPolicy",
          "httpMethod": "POST"
        },
        "insert": {
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/targetPools",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetPools",
          "description": "Creates a target pool in the specified project and region using\nthe data included in the request.",
          "id": "compute.targetPools.insert",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetPool"
          }
        }
      }
    },
    "advice": {
      "methods": {
        "capacityHistory": {
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "request": {
            "$ref": "CapacityHistoryRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/advice/capacityHistory",
          "flatPath": "projects/{project}/regions/{region}/advice/capacityHistory",
          "description": "Gets the capacity history.",
          "id": "compute.advice.capacityHistory",
          "response": {
            "$ref": "CapacityHistoryResponse"
          }
        },
        "calendarMode": {
          "request": {
            "$ref": "CalendarModeAdviceRequest"
          },
          "path": "projects/{project}/regions/{region}/advice/calendarMode",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "description": "Advise how, where and when to create the requested amount of instances\nwith specified accelerators, within the specified time and location limits.\nThe method recommends creating future reservations for the requested\nresources.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "CalendarModeAdviceResponse"
          },
          "id": "compute.advice.calendarMode",
          "flatPath": "projects/{project}/regions/{region}/advice/calendarMode",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "capacity": {
          "description": "Advice on making real-time decisions (such as choosing zone or\nmachine types) during deployment to maximize your chances of obtaining\ncapacity.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "request": {
            "$ref": "CapacityAdviceRequest"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/advice/capacity",
          "id": "compute.advice.capacity",
          "path": "projects/{project}/regions/{region}/advice/capacity",
          "response": {
            "$ref": "CapacityAdviceResponse"
          }
        }
      }
    },
    "externalVpnGateways": {
      "methods": {
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.externalVpnGateways.get",
          "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
          "description": "Returns the specified externalVpnGateway. Get a list of available\nexternalVpnGateways by making a list() request.",
          "parameterOrder": [
            "project",
            "externalVpnGateway"
          ],
          "parameters": {
            "externalVpnGateway": {
              "location": "path",
              "required": true,
              "description": "Name of the externalVpnGateway to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "ExternalVpnGateway"
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}"
        },
        "list": {
          "id": "compute.externalVpnGateways.list",
          "path": "projects/{project}/global/externalVpnGateways",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/externalVpnGateways",
          "description": "Retrieves the list of ExternalVpnGateway available to the specified\nproject.",
          "response": {
            "$ref": "ExternalVpnGatewayList"
          },
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "minimum": "0",
              "location": "query",
              "format": "uint32"
            }
          }
        },
        "setLabels": {
          "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
          "id": "compute.externalVpnGateways.setLabels",
          "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "httpMethod": "POST",
          "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels,\nread the Labeling\nResources documentation.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          }
        },
        "insert": {
          "flatPath": "projects/{project}/global/externalVpnGateways",
          "request": {
            "$ref": "ExternalVpnGateway"
          },
          "description": "Creates a ExternalVpnGateway in the specified project using\nthe data included in the request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/externalVpnGateways",
          "id": "compute.externalVpnGateways.insert"
        },
        "delete": {
          "description": "Deletes the specified externalVpnGateway.",
          "parameterOrder": [
            "project",
            "externalVpnGateway"
          ],
          "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "externalVpnGateway": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the externalVpnGateways to delete."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
          "id": "compute.externalVpnGateways.delete"
        },
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "id": "compute.externalVpnGateways.testIamPermissions",
          "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
          "httpMethod": "POST"
        }
      }
    },
    "regionInstantSnapshotGroups": {
      "methods": {
        "getIamPolicy": {
          "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/getIamPolicy",
          "id": "compute.regionInstantSnapshotGroups.getIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/getIamPolicy",
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the resource for this request."
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "Policy"
          }
        },
        "setIamPolicy": {
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "id": "compute.regionInstantSnapshotGroups.setIamPolicy",
          "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/setIamPolicy"
        },
        "list": {
          "id": "compute.regionInstantSnapshotGroups.list",
          "path": "projects/{project}/regions/{region}/instantSnapshotGroups",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "maxResults": {
              "location": "query",
              "format": "uint32",
              "default": "500",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups",
          "description": "retrieves the list of InstantSnapshotGroup resources contained within\nthe specified region.",
          "response": {
            "$ref": "ListInstantSnapshotGroups"
          }
        },
        "insert": {
          "path": "projects/{project}/regions/{region}/instantSnapshotGroups",
          "id": "compute.regionInstantSnapshotGroups.insert",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "sourceConsistencyGroup": {
              "type": "string",
              "location": "query",
              "description": "begin_interface: MixerMutationRequestBuilder"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "InstantSnapshotGroup"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups",
          "description": "creates a Regional InstantSnapshotGroup resource",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "testIamPermissions": {
          "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "id": "compute.regionInstantSnapshotGroups.testIamPermissions",
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        },
        "get": {
          "response": {
            "$ref": "InstantSnapshotGroup"
          },
          "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "instantSnapshotGroup"
          ],
          "parameters": {
            "instantSnapshotGroup": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the InstantSnapshotGroup resource to return."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request."
            }
          },
          "httpMethod": "GET",
          "id": "compute.regionInstantSnapshotGroups.get",
          "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}",
          "description": "returns the specified InstantSnapshotGroup resource in the specified\nregion."
        },
        "delete": {
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "instantSnapshotGroup": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the InstantSnapshotGroup resource to delete."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "DELETE",
          "response": {
            "$ref": "Operation"
          },
          "description": "deletes a Regional InstantSnapshotGroup resource",
          "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionInstantSnapshotGroups.delete",
          "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}",
          "parameterOrder": [
            "project",
            "region",
            "instantSnapshotGroup"
          ]
        }
      }
    },
    "targetHttpProxies": {
      "methods": {
        "insert": {
          "path": "projects/{project}/global/targetHttpProxies",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "request": {
            "$ref": "TargetHttpProxy"
          },
          "id": "compute.targetHttpProxies.insert",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "description": "Creates a TargetHttpProxy resource in the specified\nproject using the data included in the request.",
          "flatPath": "projects/{project}/global/targetHttpProxies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project"
          ]
        },
        "list": {
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            }
          },
          "id": "compute.targetHttpProxies.list",
          "description": "Retrieves the list of TargetHttpProxy resources available\nto the specified project.",
          "flatPath": "projects/{project}/global/targetHttpProxies",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/global/targetHttpProxies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TargetHttpProxyList"
          }
        },
        "aggregatedList": {
          "description": "Retrieves the list of all TargetHttpProxy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "parameters": {
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "default": "500"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Name of the project scoping this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/aggregated/targetHttpProxies",
          "id": "compute.targetHttpProxies.aggregatedList",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/aggregated/targetHttpProxies",
          "response": {
            "$ref": "TargetHttpProxyAggregatedList"
          }
        },
        "patch": {
          "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
          "httpMethod": "PATCH",
          "parameters": {
            "targetHttpProxy": {
              "description": "Name of the TargetHttpProxy resource to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.targetHttpProxies.patch",
          "description": "Patches the specified TargetHttpProxy resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "parameterOrder": [
            "project",
            "targetHttpProxy"
          ],
          "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetHttpProxy"
          }
        },
        "setUrlMap": {
          "description": "Changes the URL map for TargetHttpProxy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "targetHttpProxy"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "targetHttpProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the TargetHttpProxy to set a URL map for."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
          "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
          "request": {
            "$ref": "UrlMapReference"
          },
          "id": "compute.targetHttpProxies.setUrlMap",
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "description": "Returns the specified TargetHttpProxy resource.",
          "response": {
            "$ref": "TargetHttpProxy"
          },
          "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
          "parameterOrder": [
            "project",
            "targetHttpProxy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "targetHttpProxy": {
              "description": "Name of the TargetHttpProxy resource to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.targetHttpProxies.get"
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.targetHttpProxies.delete",
          "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
          "description": "Deletes the specified TargetHttpProxy resource.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "targetHttpProxy": {
              "type": "string",
              "description": "Name of the TargetHttpProxy resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "DELETE",
          "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
          "parameterOrder": [
            "project",
            "targetHttpProxy"
          ]
        }
      }
    },
    "instances": {
      "methods": {
        "setMinCpuPlatform": {
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "InstancesSetMinCpuPlatformRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "instance": {
              "location": "path",
              "required": true,
              "description": "Name of the instance scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "description": "Changes the minimum CPU platform that this instance should use.\nThis method can only\nbe called on a stopped instance. For more information, readSpecifying a\nMinimum CPU Platform.",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "id": "compute.instances.setMinCpuPlatform"
        },
        "setName": {
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setName",
          "id": "compute.instances.setName",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "InstancesSetNameRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName",
          "description": "Sets name of an instance.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The instance name for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          }
        },
        "listReferrers": {
          "id": "compute.instances.listReferrers",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "instance": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the target instance scoping this request, or '-' if the\nrequest should span over all instances in the container.",
              "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "InstanceListReferrers"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
          "description": "Retrieves a list of resources that refer to the VM instance specified in\nthe request. For example, if the VM instance is part of a managed or\nunmanaged instance group, the referrers list includes the instance group.\nFor more information, readViewing\nreferrers to VM instances."
        },
        "deleteAccessConfig": {
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "instance": {
              "description": "The instance name for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "networkInterface": {
              "location": "query",
              "required": true,
              "description": "The name of the network interface.",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "accessConfig": {
              "location": "query",
              "required": true,
              "type": "string",
              "description": "The name of the access config to delete."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
          "description": "Deletes an access config from an instance's network interface.",
          "id": "compute.instances.deleteAccessConfig",
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "accessConfig",
            "networkInterface"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig"
        },
        "addAccessConfig": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
          "request": {
            "$ref": "AccessConfig"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instances.addAccessConfig",
          "description": "Adds an access config to an instance's network interface.",
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "networkInterface"
          ],
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
          "parameters": {
            "networkInterface": {
              "type": "string",
              "description": "The name of the network interface to add to this instance.",
              "location": "query",
              "required": true
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "instance": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The instance name for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "setTags": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Sets network tags\nfor the specified instance to the data included in the request.",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "request": {
            "$ref": "Tags"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
          "id": "compute.instances.setTags",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "instance": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the instance scoping this request."
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "setMachineType": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
          "request": {
            "$ref": "InstancesSetMachineTypeRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the instance scoping this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "id": "compute.instances.setMachineType",
          "description": "Changes the machine type for a stopped instance to the machine\ntype specified in the request."
        },
        "getSerialPortOutput": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the last 1 MB of serial port output from the specified instance.",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
          "response": {
            "$ref": "SerialPortOutput"
          },
          "id": "compute.instances.getSerialPortOutput",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "instance": {
              "description": "Name of the instance for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "start": {
              "description": "Specifies the starting byte position of the output to return. To start with\nthe first byte of output to the specified port, omit this field or set it\nto `0`.\n\nIf the output for that byte position is available, this field matches the\n`start` parameter sent with the request. If the amount of serial console\noutput exceeds the size of the buffer (1 MB), the oldest output is\ndiscarded and is no longer available. If the requested start position\nrefers to discarded output, the start position is adjusted to the oldest\noutput still available, and the adjusted start position is returned as the\n`start` property value.\n\nYou can also provide a negative start position, which translates to the\nmost recent number of bytes written to the serial port. For example, -3 is\ninterpreted as the most recent 3 bytes written to the serial console. Note\nthat the negative start is bounded by the retained buffer size, and the\nreturned serial console output will not exceed the max buffer size.",
              "location": "query",
              "format": "int64",
              "type": "string"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "port": {
              "minimum": "1",
              "format": "int32",
              "location": "query",
              "type": "integer",
              "maximum": "4",
              "default": "1",
              "description": "Specifies which COM or serial port to retrieve data from."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
          "httpMethod": "GET"
        },
        "getGuestAttributes": {
          "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "response": {
            "$ref": "GuestAttributes"
          },
          "description": "Returns the specified guest attributes entry.",
          "httpMethod": "GET",
          "parameters": {
            "queryPath": {
              "type": "string",
              "location": "query",
              "description": "Specifies the guest attributes path to be queried."
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "instance": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the instance scoping this request."
            },
            "variableKey": {
              "description": "Specifies the key for the guest attributes entry.",
              "type": "string",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.instances.getGuestAttributes"
        },
        "removeResourcePolicies": {
          "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Removes resource policies from an instance.",
          "request": {
            "$ref": "InstancesRemoveResourcePoliciesRequest"
          },
          "id": "compute.instances.removeResourcePolicies",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The instance name for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the zone for this request."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
          "httpMethod": "POST"
        },
        "bulkInsert": {
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "request": {
            "$ref": "BulkInsertInstanceResource"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert",
          "path": "projects/{project}/zones/{zone}/instances/bulkInsert",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "description": "Creates multiple instances. Count specifies the number of instances to\ncreate. For more information, seeAbout bulk\ncreation of VMs.",
          "id": "compute.instances.bulkInsert"
        },
        "addNetworkInterface": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface",
          "description": "Adds one dynamic network interface to an active instance.",
          "request": {
            "$ref": "NetworkInterface"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instances.addNetworkInterface",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "instance": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The instance name for this request stored as resource_id.\nName should conform to RFC1035 or be an unsigned long integer."
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface"
        },
        "getScreenshot": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the instance scoping this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
          "description": "Returns the screenshot from the specified instance.",
          "response": {
            "$ref": "Screenshot"
          },
          "id": "compute.instances.getScreenshot",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot"
        },
        "resume": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume",
          "description": "Resumes an instance that was suspended using theinstances().suspend\nmethod.",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/resume",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "instance": {
              "description": "Name of the instance resource to resume.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.instances.resume",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "start": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the instance resource to start.",
              "type": "string"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/start",
          "id": "compute.instances.start",
          "description": "Starts an instance that was stopped using theinstances().stop\nmethod. For more information, seeRestart an\ninstance."
        },
        "setScheduling": {
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "Scheduling"
          },
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "instance": {
              "location": "path",
              "required": true,
              "description": "Instance name for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instances.setScheduling",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "description": "Sets an instance's scheduling options. You can only call this method on astopped instance,\nthat is, a VM instance that is in a `TERMINATED` state. SeeInstance Life\nCycle for more information on the possible instance states.\nFor more information about setting scheduling options for a VM, seeSet\nVM host maintenance policy.",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling"
        },
        "deleteNetworkInterface": {
          "description": "Deletes one dynamic network interface from an active instance.\nInstancesDeleteNetworkInterfaceRequest indicates:\n- instance from which to delete, using project+zone+resource_id fields;\n- dynamic network interface to be deleted, using network_interface_name\nfield;",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface",
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "instance": {
              "type": "string",
              "description": "The instance name for this request stored as resource_id.\nName should conform to RFC1035 or be an unsigned long integer.",
              "location": "path",
              "required": true
            },
            "networkInterfaceName": {
              "type": "string",
              "location": "query",
              "required": true,
              "description": "The name of the dynamic network interface to be deleted from the instance."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "networkInterfaceName"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface",
          "id": "compute.instances.deleteNetworkInterface"
        },
        "performMaintenance": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Perform a manual maintenance on the instance.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance",
          "id": "compute.instances.performMaintenance",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the instance scoping this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ]
        },
        "simulateMaintenanceEvent": {
          "id": "compute.instances.simulateMaintenanceEvent",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "withExtendedNotifications": {
              "type": "boolean",
              "description": "Determines whether the customers receive notifications before migration.\nOnly applicable to SF vms.",
              "location": "query"
            },
            "instance": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the instance scoping this request."
            }
          },
          "description": "Simulates a host maintenance event on a VM. For more information, see\nSimulate a host maintenance event.",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent"
        },
        "insert": {
          "id": "compute.instances.insert",
          "path": "projects/{project}/zones/{zone}/instances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Creates an instance resource in the specified project using the data\nincluded in the request.",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "parameters": {
            "sourceInstanceTemplate": {
              "type": "string",
              "location": "query",
              "description": "Specifies instance template to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the\nfollowing are all valid URLs to an instance template:\n   \n   \n      - https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate\n      - projects/project/global/instanceTemplates/instanceTemplate\n      - global/instanceTemplates/instanceTemplate"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "sourceMachineImage": {
              "location": "query",
              "type": "string",
              "description": "Specifies the machine image to use to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the\nfollowing are all valid URLs to a machine image:\n   \n   \n      - https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage\n      - projects/project/global/global/machineImages/machineImage\n      - global/machineImages/machineImage"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "Instance"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances"
        },
        "suspend": {
          "path": "projects/{project}/zones/{zone}/instances/{instance}/suspend",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "discardLocalSsd": {
              "type": "boolean",
              "description": "This property is required if the instance has any attached Local SSD disks.\nIf false, Local SSD data will be preserved when the instance is suspended.\nIf true, the contents of any attached Local SSD disks will be discarded.",
              "location": "query"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "instance": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the instance resource to suspend.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/suspend",
          "description": "This method suspends a running instance, saving its state to persistent\nstorage, and allows you to resume the instance at a later time. Suspended\ninstances have no compute costs (cores or RAM), and incur only storage\ncharges for the saved VM memory and localSSD data. Any charged resources\nthe virtual machine was using, such as persistent disks and static IP\naddresses, will continue to be charged while the instance is suspended.\nFor more information, see\nSuspending and resuming an instance.",
          "id": "compute.instances.suspend",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ]
        },
        "updateShieldedInstanceConfig": {
          "request": {
            "$ref": "ShieldedInstanceConfig"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "description": "Updates the Shielded Instance config for an instance. You can\nonly use this method on a stopped instance. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "instance": {
              "description": "Name or id of the instance scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
          "id": "compute.instances.updateShieldedInstanceConfig",
          "response": {
            "$ref": "Operation"
          }
        },
        "setMachineResources": {
          "parameters": {
            "instance": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the instance scoping this request.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            }
          },
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
          "request": {
            "$ref": "InstancesSetMachineResourcesRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Changes the number and/or type of accelerator for a stopped instance to the\nvalues specified in the request.",
          "id": "compute.instances.setMachineResources"
        },
        "detachDisk": {
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Instance name for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "deviceName": {
              "type": "string",
              "location": "query",
              "required": true,
              "description": "The device name of the disk to detach. Make a get() request on\nthe instance to view currently attached disks and device names."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Detaches a disk from an instance.",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "deviceName"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
          "id": "compute.instances.detachDisk"
        },
        "startWithEncryptionKey": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
          "request": {
            "$ref": "InstancesStartWithEncryptionKeyRequest"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
          "description": "Starts an instance that was stopped using theinstances().stop\nmethod. For more information, seeRestart an\ninstance.",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "instance": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the instance resource to start."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "id": "compute.instances.startWithEncryptionKey"
        },
        "get": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
          "response": {
            "$ref": "Instance"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}",
          "id": "compute.instances.get",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "instance": {
              "type": "string",
              "description": "Name of the instance resource to return.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "description": "Returns the specified Instance resource.",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ]
        },
        "updateNetworkInterface": {
          "id": "compute.instances.updateNetworkInterface",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
          "response": {
            "$ref": "Operation"
          },
          "description": "Updates an instance's network interface. This method can only update an\ninterface's alias IP range and attached network. See Modifying\nalias IP ranges for an existing instance for instructions on\nchanging alias IP ranges. See Migrating\na VM between networks for instructions on migrating an interface.\nThis method follows PATCH semantics.",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "networkInterface": {
              "description": "The name of the network interface to update.",
              "type": "string",
              "location": "query",
              "required": true
            },
            "instance": {
              "description": "The instance name for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "networkInterface"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "NetworkInterface"
          }
        },
        "setSecurityPolicy": {
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.instances.setSecurityPolicy",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "Name of the zone scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "instance": {
              "description": "Name of the Instance resource to which the security policy should be\nset. The name should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "request": {
            "$ref": "InstancesSetSecurityPolicyRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Sets the Google Cloud Armor security policy for the specified instance.\nFor more information, seeGoogle\nCloud Armor Overview",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy"
        },
        "getEffectiveFirewalls": {
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "networkInterface"
          ],
          "response": {
            "$ref": "InstancesGetEffectiveFirewallsResponse"
          },
          "description": "Returns effective firewalls applied to an interface of the instance.",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
          "id": "compute.instances.getEffectiveFirewalls",
          "parameters": {
            "instance": {
              "location": "path",
              "required": true,
              "description": "Name of the instance scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "networkInterface": {
              "type": "string",
              "location": "query",
              "required": true,
              "description": "The name of the network interface to get the effective firewalls."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "sendDiagnosticInterrupt": {
          "id": "compute.instances.sendDiagnosticInterrupt",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt",
          "description": "Sends diagnostic interrupt to the instance.",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "instance": {
              "location": "path",
              "required": true,
              "description": "Name of the instance scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          }
        },
        "attachDisk": {
          "parameters": {
            "forceAttach": {
              "type": "boolean",
              "description": "Whether to force attach the regional disk even if it's currently attached\nto another instance. If you try to force attach a zonal disk to an\ninstance, you will receive an error.",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "instance": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The instance name for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "description": "Attaches an existing Disk resource to an instance. You must first\ncreate the disk before you can attach it. It is not possible to create\nand attach a disk at the same time. For more information, readAdding a\npersistent disk to your instance.",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "id": "compute.instances.attachDisk",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
          "request": {
            "$ref": "AttachedDisk"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "setDiskAutoDelete": {
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "autoDelete": {
              "type": "boolean",
              "location": "query",
              "required": true,
              "description": "Whether to auto-delete the disk when the instance is deleted."
            },
            "deviceName": {
              "type": "string",
              "location": "query",
              "required": true,
              "pattern": "\\w[\\w.-]{0,254}",
              "description": "The device name of the disk to modify. Make a get() request\non the instance to view currently attached disks and device names."
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            },
            "instance": {
              "description": "The instance name for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Sets the auto-delete flag for a disk attached to an instance.",
          "id": "compute.instances.setDiskAutoDelete",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "autoDelete",
            "deviceName"
          ]
        },
        "update": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "request": {
            "$ref": "Instance"
          },
          "description": "Updates an instance only if the necessary resources are available. This\nmethod can update only a specific set of instance properties. See\nUpdating a running instance for a list of updatable instance\nproperties.",
          "parameters": {
            "mostDisruptiveAllowedAction": {
              "description": "Specifies the most disruptive action that can be taken on the instance\nas part of the update. Compute Engine returns an error if the\ninstance properties require a more disruptive action as part of the\ninstance update. Valid options from lowest to highest are\nNO_EFFECT, REFRESH, and RESTART.",
              "type": "string",
              "enumDescriptions": [
                "",
                "No changes can be made to the instance.",
                "The instance will not restart.",
                "The instance will restart, potentially on a different host."
              ],
              "enum": [
                "INVALID",
                "NO_EFFECT",
                "REFRESH",
                "RESTART"
              ],
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "discardLocalSsd": {
              "type": "boolean",
              "description": "Whether to discard local SSDs from the instance during restart\ndefault value is false.",
              "location": "query"
            },
            "minimalAction": {
              "type": "string",
              "description": "Specifies the action to take when updating an instance even if the\nupdated properties do not require it. If not specified, then\nCompute Engine acts based on the minimum action that the updated\nproperties require.",
              "enumDescriptions": [
                "",
                "No changes can be made to the instance.",
                "The instance will not restart.",
                "The instance will restart, potentially on a different host."
              ],
              "enum": [
                "INVALID",
                "NO_EFFECT",
                "REFRESH",
                "RESTART"
              ],
              "location": "query"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "instance": {
              "description": "Name of the instance resource to update.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "id": "compute.instances.update",
          "httpMethod": "PUT",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
          "path": "projects/{project}/zones/{zone}/instances/{instance}",
          "response": {
            "$ref": "Operation"
          }
        },
        "getShieldedInstanceIdentity": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "description": "Returns the Shielded Instance Identity of an instance",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
          "parameters": {
            "instance": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the instance scoping this request."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "ShieldedInstanceIdentity"
          },
          "id": "compute.instances.getShieldedInstanceIdentity",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity"
        },
        "list": {
          "description": "Retrieves the list of instances contained within\nthe specified zone.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances",
          "response": {
            "$ref": "InstanceList"
          },
          "path": "projects/{project}/zones/{zone}/instances",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "id": "compute.instances.list",
          "httpMethod": "GET",
          "parameters": {
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "type": "integer"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            }
          }
        },
        "reset": {
          "description": "Performs a reset on the instance. This is a hard reset. The VM\ndoes not do a graceful shutdown. For more information, seeResetting\nan instance.",
          "id": "compute.instances.reset",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/reset",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "instance": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the instance scoping this request."
            }
          },
          "httpMethod": "POST"
        },
        "updateDisplayDevice": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instances.updateDisplayDevice",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "httpMethod": "PATCH",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "instance": {
              "description": "Name of the instance scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "request": {
            "$ref": "DisplayDevice"
          },
          "description": "Updates the Display config for a VM instance. You can\nonly use this method on a stopped VM instance. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules."
        },
        "reportHostAsFaulty": {
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "id": "compute.instances.reportHostAsFaulty",
          "request": {
            "$ref": "InstancesReportHostAsFaultyRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "instance": {
              "description": "Name of the instance scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reportHostAsFaulty",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/reportHostAsFaulty",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Mark the host as faulty and try to restart the instance on a new host.",
          "response": {
            "$ref": "Operation"
          }
        },
        "stop": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.instances.stop",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "description": "Stops a running instance, shutting it down cleanly, and allows\nyou to restart the instance at a later time. Stopped instances do not incur\nVM usage charges while they are stopped. However, resources that the VM is\nusing, such as persistent disks and static IP addresses, will continue to\nbe charged until they are deleted. For more information, seeStopping\nan instance.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/instances/{instance}/stop",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "noGracefulShutdown": {
              "type": "boolean",
              "location": "query",
              "description": "If set to true, Graceful Shutdown is skipped."
            },
            "instance": {
              "location": "path",
              "required": true,
              "description": "Name of the instance resource to stop.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "discardLocalSsd": {
              "description": "This property is required if the instance has any attached Local SSD disks.\nIf false, Local SSD data will be preserved when the instance is suspended.\nIf true, the contents of any attached Local SSD disks will be discarded.",
              "location": "query",
              "type": "boolean"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop"
        },
        "setMetadata": {
          "description": "Sets metadata for the specified instance to the data included\nin the request.",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "instance": {
              "location": "path",
              "required": true,
              "description": "Name of the instance scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
          "request": {
            "$ref": "Metadata"
          },
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instances.setMetadata"
        },
        "setIamPolicy": {
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            }
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.instances.setIamPolicy",
          "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
          "request": {
            "$ref": "ZoneSetPolicyRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "addResourcePolicies": {
          "request": {
            "$ref": "InstancesAddResourcePoliciesRequest"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "description": "Adds existing resource policies to an instance. You can only add one\npolicy right now which will be applied to this instance for scheduling live\nmigrations.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
          "id": "compute.instances.addResourcePolicies",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "instance": {
              "type": "string",
              "description": "The instance name for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "getIamPolicy": {
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "id": "compute.instances.getIamPolicy",
          "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            },
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "type": "integer",
              "description": "Requested IAM Policy version.",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            }
          },
          "response": {
            "$ref": "Policy"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setServiceAccount": {
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
          "description": "Sets the service account on the instance. For more information,\nreadChanging\nthe service account and access scopes for an instance.",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
          "id": "compute.instances.setServiceAccount",
          "request": {
            "$ref": "InstancesSetServiceAccountRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "instance": {
              "description": "Name of the instance resource to start.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          }
        },
        "setShieldedInstanceIntegrityPolicy": {
          "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
          "httpMethod": "PATCH",
          "parameters": {
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "instance": {
              "description": "Name or id of the instance scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
          "description": "Sets the Shielded Instance integrity policy for an instance. You can\nonly use this method on a running instance. This method\nsupports PATCH semantics and uses the JSON merge\npatch format and processing rules.",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "ShieldedInstanceIntegrityPolicy"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ]
        },
        "setDeletionProtection": {
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
          "parameters": {
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "deletionProtection": {
              "type": "boolean",
              "location": "query",
              "description": "Whether the resource should be protected against deletion.",
              "default": "true"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
          "httpMethod": "POST",
          "id": "compute.instances.setDeletionProtection",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "description": "Sets deletion protection on the instance.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "aggregatedList": {
          "id": "compute.instances.aggregatedList",
          "description": "Retrieves an aggregated list of all of the instances in your project\nacross all regions and zones.\n\nThe performance of this method degrades when a filter is specified on a\nproject that has a very large number of instances.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/instances",
          "path": "projects/{project}/aggregated/instances",
          "response": {
            "$ref": "InstanceAggregatedList"
          },
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "type": "integer",
              "location": "query"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "location": "query"
            }
          }
        },
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "id": "compute.instances.testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
          "httpMethod": "POST"
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the instance resource to delete.",
              "location": "path",
              "required": true
            },
            "noGracefulShutdown": {
              "type": "boolean",
              "description": "If set to true, Graceful Shutdown is skipped.",
              "location": "query"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "description": "Deletes the specified Instance resource. For more information, seeDeleting\nan instance.",
          "id": "compute.instances.delete",
          "path": "projects/{project}/zones/{zone}/instances/{instance}"
        },
        "setLabels": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "instance": {
              "type": "string",
              "description": "Name of the instance scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance"
          ],
          "httpMethod": "POST",
          "description": "Sets labels on an instance.  To learn more about labels, read theLabeling\nResources documentation.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instances.setLabels",
          "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
          "request": {
            "$ref": "InstancesSetLabelsRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels"
        },
        "updateAccessConfig": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
          "description": "Updates the specified access config from an instance's network interface\nwith the data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
          "request": {
            "$ref": "AccessConfig"
          },
          "parameterOrder": [
            "project",
            "zone",
            "instance",
            "networkInterface"
          ],
          "parameters": {
            "networkInterface": {
              "type": "string",
              "location": "query",
              "required": true,
              "description": "The name of the network interface where the access config is attached."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "instance": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "The instance name for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "id": "compute.instances.updateAccessConfig"
        }
      }
    },
    "networkFirewallPolicies": {
      "methods": {
        "removePacketMirroringRule": {
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the firewall policy to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "priority": {
              "location": "query",
              "format": "int32",
              "description": "The priority of the rule to remove from the firewall policy.",
              "type": "integer"
            }
          },
          "id": "compute.networkFirewallPolicies.removePacketMirroringRule",
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "description": "Deletes a packet mirroring rule of the specified priority.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "getRule": {
          "response": {
            "$ref": "FirewallPolicyRule"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to which the queried rule belongs.",
              "type": "string"
            },
            "priority": {
              "type": "integer",
              "format": "int32",
              "location": "query",
              "description": "The priority of the rule to get from the firewall policy."
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule",
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule",
          "description": "Gets a rule of the specified priority.",
          "id": "compute.networkFirewallPolicies.getRule",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "aggregatedList": {
          "response": {
            "$ref": "NetworkFirewallPolicyAggregatedList"
          },
          "description": "Retrieves an aggregated list of network firewall policies, listing network\nfirewall policies from all applicable scopes (global and regional) and\ngrouping the results per scope.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/aggregated/firewallPolicies",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "format": "uint32"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "serviceProjectNumber": {
              "location": "query",
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64"
            },
            "includeAllScopes": {
              "type": "boolean",
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/aggregated/firewallPolicies",
          "id": "compute.networkFirewallPolicies.aggregatedList"
        },
        "patchPacketMirroringRule": {
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule",
          "description": "Patches a packet mirroring rule of the specified priority.",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to update."
            },
            "priority": {
              "format": "int32",
              "location": "query",
              "description": "The priority of the rule to patch.",
              "type": "integer"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.networkFirewallPolicies.patchPacketMirroringRule",
          "request": {
            "$ref": "FirewallPolicyRule"
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule"
        },
        "getPacketMirroringRule": {
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "description": "Gets a packet mirroring rule of the specified priority.",
          "id": "compute.networkFirewallPolicies.getPacketMirroringRule",
          "response": {
            "$ref": "FirewallPolicyRule"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule",
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule",
          "parameters": {
            "priority": {
              "location": "query",
              "type": "integer",
              "format": "int32",
              "description": "The priority of the rule to get from the firewall policy."
            },
            "firewallPolicy": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to which the queried rule belongs.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "GET"
        },
        "addPacketMirroringRule": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "FirewallPolicyRule"
          },
          "description": "Inserts a packet mirroring rule into a firewall policy.",
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule",
          "httpMethod": "POST",
          "parameters": {
            "minPriority": {
              "type": "integer",
              "location": "query",
              "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.",
              "format": "int32"
            },
            "firewallPolicy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to update."
            },
            "maxPriority": {
              "location": "query",
              "format": "int32",
              "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.",
              "type": "integer"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule",
          "id": "compute.networkFirewallPolicies.addPacketMirroringRule",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ]
        },
        "testIamPermissions": {
          "description": "Returns permissions that a caller has on the specified resource.",
          "id": "compute.networkFirewallPolicies.testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        },
        "cloneRules": {
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.networkFirewallPolicies.cloneRules",
          "httpMethod": "POST",
          "description": "Copies rules to the specified firewall policy.",
          "parameters": {
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to update.",
              "type": "string"
            },
            "sourceFirewallPolicy": {
              "location": "query",
              "type": "string",
              "description": "The firewall policy from which to copy rules."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.networkFirewallPolicies.get",
          "description": "Returns the specified network firewall policy.",
          "httpMethod": "GET",
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to get."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}",
          "response": {
            "$ref": "FirewallPolicy"
          },
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}"
        },
        "addAssociation": {
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "request": {
            "$ref": "FirewallPolicyAssociation"
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation",
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation",
          "id": "compute.networkFirewallPolicies.addAssociation",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "replaceExistingAssociation": {
              "type": "boolean",
              "description": "Indicates whether or not to replace it if an association of the attachment\nalready exists. This is false by default, in which case an error will be\nreturned if an association already exists.",
              "location": "query"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to update.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Inserts an association for the specified firewall policy."
        },
        "addRule": {
          "id": "compute.networkFirewallPolicies.addRule",
          "description": "Inserts a rule into a firewall policy.",
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule",
          "httpMethod": "POST",
          "parameters": {
            "minPriority": {
              "location": "query",
              "format": "int32",
              "type": "integer",
              "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "maxPriority": {
              "location": "query",
              "format": "int32",
              "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.",
              "type": "integer"
            },
            "firewallPolicy": {
              "description": "Name of the firewall policy to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule",
          "request": {
            "$ref": "FirewallPolicyRule"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "removeAssociation": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Removes an association for the specified firewall policy.",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "parameters": {
            "name": {
              "location": "query",
              "type": "string",
              "description": "Name for the attachment that will be removed."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "firewallPolicy": {
              "type": "string",
              "description": "Name of the firewall policy to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation",
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.networkFirewallPolicies.removeAssociation"
        },
        "list": {
          "parameters": {
            "maxResults": {
              "type": "integer",
              "location": "query",
              "default": "500",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "path": "projects/{project}/global/firewallPolicies",
          "id": "compute.networkFirewallPolicies.list",
          "response": {
            "$ref": "FirewallPolicyList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Lists all the policies that have been configured for the specified project.",
          "flatPath": "projects/{project}/global/firewallPolicies"
        },
        "removeRule": {
          "description": "Deletes a rule of the specified priority.",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "priority": {
              "description": "The priority of the rule to remove from the firewall policy.",
              "format": "int32",
              "type": "integer",
              "location": "query"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "firewallPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to update.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule",
          "id": "compute.networkFirewallPolicies.removeRule",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ]
        },
        "delete": {
          "description": "Deletes the specified policy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}",
          "id": "compute.networkFirewallPolicies.delete",
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "firewallPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the firewall policy to delete.",
              "location": "path",
              "required": true
            }
          }
        },
        "getIamPolicy": {
          "id": "compute.networkFirewallPolicies.getIamPolicy",
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            },
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "description": "Requested IAM Policy version.",
              "location": "query",
              "type": "integer"
            }
          },
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Policy"
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy"
        },
        "getAssociation": {
          "id": "compute.networkFirewallPolicies.getAssociation",
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation",
          "description": "Gets an association with the specified name.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the firewall policy to which the queried association belongs."
            },
            "name": {
              "type": "string",
              "location": "query",
              "description": "The name of the association to get from the firewall policy."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "response": {
            "$ref": "FirewallPolicyAssociation"
          },
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ]
        },
        "insert": {
          "description": "Creates a new policy in the specified project using the data included in\nthe request.",
          "flatPath": "projects/{project}/global/firewallPolicies",
          "id": "compute.networkFirewallPolicies.insert",
          "path": "projects/{project}/global/firewallPolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "FirewallPolicy"
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "POST"
        },
        "patchRule": {
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "FirewallPolicyRule"
          },
          "description": "Patches a rule of the specified priority.",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule",
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "httpMethod": "POST",
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to update."
            },
            "priority": {
              "location": "query",
              "description": "The priority of the rule to patch.",
              "type": "integer",
              "format": "int32"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "id": "compute.networkFirewallPolicies.patchRule"
        },
        "patch": {
          "description": "Patches the specified policy with the data included in the request.",
          "request": {
            "$ref": "FirewallPolicy"
          },
          "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}",
          "id": "compute.networkFirewallPolicies.patch",
          "httpMethod": "PATCH",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "firewallPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to update."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "firewallPolicy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}"
        },
        "setIamPolicy": {
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy",
          "flatPath": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "httpMethod": "POST",
          "id": "compute.networkFirewallPolicies.setIamPolicy"
        }
      }
    },
    "globalOrganizationOperations": {
      "methods": {
        "delete": {
          "id": "compute.globalOrganizationOperations.delete",
          "flatPath": "locations/global/operations/{operation}",
          "description": "Deletes the specified Operations resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "locations/global/operations/{operation}",
          "parameterOrder": [
            "operation"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "operation": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier.",
              "location": "path",
              "required": true
            },
            "parentId": {
              "description": "Parent ID for this request.",
              "location": "query",
              "type": "string"
            }
          }
        },
        "list": {
          "id": "compute.globalOrganizationOperations.list",
          "flatPath": "locations/global/operations",
          "path": "locations/global/operations",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "location": "query",
              "format": "uint32",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "type": "integer"
            },
            "parentId": {
              "description": "Parent ID for this request.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "response": {
            "$ref": "OperationList"
          },
          "description": "Retrieves a list of Operation resources contained within the specified\norganization."
        },
        "get": {
          "id": "compute.globalOrganizationOperations.get",
          "parameters": {
            "operation": {
              "location": "path",
              "required": true,
              "description": "Name of the Operations resource to return. Parent is derived from this\nfield.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "parentId": {
              "location": "query",
              "description": "Parent ID for this request. Not used. Parent is derived from resource_id.",
              "type": "string"
            }
          },
          "description": "Retrieves the specified Operations resource. Gets a list of operations\nby making a `list()` request.",
          "httpMethod": "GET",
          "path": "locations/global/operations/{operation}",
          "parameterOrder": [
            "operation"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "locations/global/operations/{operation}"
        }
      }
    },
    "securityPolicies": {
      "methods": {
        "listPreconfiguredExpressionSets": {
          "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
          "response": {
            "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
          },
          "description": "Gets the current list of preconfigured Web Application Firewall (WAF)\nexpressions.",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "maxResults": {
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "id": "compute.securityPolicies.listPreconfiguredExpressionSets"
        },
        "setLabels": {
          "description": "Sets the labels on a security policy. To learn more about labels,\nread the Labeling Resources\ndocumentation.",
          "flatPath": "projects/{project}/global/securityPolicies/{resource}/setLabels",
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.securityPolicies.setLabels",
          "path": "projects/{project}/global/securityPolicies/{resource}/setLabels",
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ]
        },
        "list": {
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "location": "query",
              "type": "integer"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/global/securityPolicies",
          "parameterOrder": [
            "project"
          ],
          "description": "List all the policies that have been configured for the specified project.",
          "response": {
            "$ref": "SecurityPolicyList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.securityPolicies.list",
          "path": "projects/{project}/global/securityPolicies"
        },
        "get": {
          "parameterOrder": [
            "project",
            "securityPolicy"
          ],
          "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
          "id": "compute.securityPolicies.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "securityPolicy": {
              "description": "Name of the security policy to get.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "response": {
            "$ref": "SecurityPolicy"
          },
          "httpMethod": "GET",
          "description": "List all of the ordered rules present in a single specified policy.",
          "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}"
        },
        "patch": {
          "parameterOrder": [
            "project",
            "securityPolicy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "updateMask": {
              "type": "string",
              "format": "google-fieldmask",
              "description": "Indicates fields to be cleared as part of this request.",
              "location": "query"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "securityPolicy": {
              "type": "string",
              "description": "Name of the security policy to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "PATCH",
          "request": {
            "$ref": "SecurityPolicy"
          },
          "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
          "description": "Patches the specified policy with the data included in the request. To\nclear fields in the policy, leave the fields empty and specify them in the\nupdateMask. This cannot be used to be update the rules in the policy.\nPlease use the per rule methods like addRule, patchRule, and removeRule\ninstead.",
          "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
          "id": "compute.securityPolicies.patch"
        },
        "delete": {
          "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
          "description": "Deletes the specified policy.",
          "parameterOrder": [
            "project",
            "securityPolicy"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "securityPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the security policy to delete."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.securityPolicies.delete",
          "path": "projects/{project}/global/securityPolicies/{securityPolicy}"
        },
        "insert": {
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Creates a new policy in the specified project using the data included in\nthe request.",
          "flatPath": "projects/{project}/global/securityPolicies",
          "path": "projects/{project}/global/securityPolicies",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "validateOnly": {
              "location": "query",
              "description": "If true, the request will not be committed.",
              "type": "boolean"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "id": "compute.securityPolicies.insert",
          "request": {
            "$ref": "SecurityPolicy"
          }
        },
        "addRule": {
          "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
          "request": {
            "$ref": "SecurityPolicyRule"
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "securityPolicy"
          ],
          "id": "compute.securityPolicies.addRule",
          "parameters": {
            "securityPolicy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the security policy to update.",
              "location": "path",
              "required": true
            },
            "validateOnly": {
              "type": "boolean",
              "location": "query",
              "description": "If true, the request will not be committed."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Inserts a rule into a security policy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule"
        },
        "aggregatedList": {
          "response": {
            "$ref": "SecurityPoliciesAggregatedList"
          },
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves the list of all SecurityPolicy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/securityPolicies",
          "id": "compute.securityPolicies.aggregatedList",
          "path": "projects/{project}/aggregated/securityPolicies",
          "parameters": {
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "serviceProjectNumber": {
              "type": "string",
              "location": "query",
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Name of the project scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query"
            }
          },
          "httpMethod": "GET"
        },
        "removeRule": {
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "securityPolicy"
          ],
          "parameters": {
            "priority": {
              "description": "The priority of the rule to remove from the security policy.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "securityPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the security policy to update.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
          "description": "Deletes a rule at the specified priority.",
          "id": "compute.securityPolicies.removeRule"
        },
        "getRule": {
          "response": {
            "$ref": "SecurityPolicyRule"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Gets a rule at the specified priority.",
          "parameterOrder": [
            "project",
            "securityPolicy"
          ],
          "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
          "parameters": {
            "priority": {
              "location": "query",
              "type": "integer",
              "description": "The priority of the rule to get from the security policy.",
              "format": "int32"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "securityPolicy": {
              "description": "Name of the security policy to which the queried rule belongs.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
          "id": "compute.securityPolicies.getRule"
        },
        "patchRule": {
          "id": "compute.securityPolicies.patchRule",
          "parameters": {
            "validateOnly": {
              "location": "query",
              "type": "boolean",
              "description": "If true, the request will not be committed."
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the security policy to update.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "updateMask": {
              "location": "query",
              "type": "string",
              "format": "google-fieldmask",
              "description": "Indicates fields to be cleared as part of this request."
            },
            "priority": {
              "location": "query",
              "format": "int32",
              "description": "The priority of the rule to patch.",
              "type": "integer"
            }
          },
          "parameterOrder": [
            "project",
            "securityPolicy"
          ],
          "httpMethod": "POST",
          "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
          "response": {
            "$ref": "Operation"
          },
          "description": "Patches a rule at the specified priority. To clear fields in the rule,\nleave the fields empty and specify them in the updateMask.",
          "request": {
            "$ref": "SecurityPolicyRule"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule"
        }
      }
    },
    "serviceAttachments": {
      "methods": {
        "getIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "id": "compute.serviceAttachments.getIamPolicy",
          "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "optionsRequestedPolicyVersion": {
              "location": "query",
              "type": "integer",
              "format": "int32",
              "description": "Requested IAM Policy version."
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET"
        },
        "delete": {
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified ServiceAttachment in the given scope",
          "parameterOrder": [
            "project",
            "region",
            "serviceAttachment"
          ],
          "id": "compute.serviceAttachments.delete",
          "httpMethod": "DELETE",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region of this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "serviceAttachment": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the ServiceAttachment resource to delete.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}"
        },
        "list": {
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments",
          "id": "compute.serviceAttachments.list",
          "response": {
            "$ref": "ServiceAttachmentList"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region of this request."
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "path": "projects/{project}/regions/{region}/serviceAttachments",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Lists the ServiceAttachments for a project in the given scope."
        },
        "setIamPolicy": {
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "parameters": {
            "region": {
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.serviceAttachments.setIamPolicy",
          "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "testIamPermissions": {
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "id": "compute.serviceAttachments.testIamPermissions"
        },
        "aggregatedList": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves the list of all ServiceAttachment resources,\nregional and global, available to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameters": {
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the project scoping this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "serviceProjectNumber": {
              "location": "query",
              "type": "string",
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "maxResults": {
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "type": "integer",
              "minimum": "0",
              "format": "uint32"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "path": "projects/{project}/aggregated/serviceAttachments",
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "ServiceAttachmentAggregatedList"
          },
          "id": "compute.serviceAttachments.aggregatedList",
          "flatPath": "projects/{project}/aggregated/serviceAttachments"
        },
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
          "description": "Patches the specified ServiceAttachment resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "id": "compute.serviceAttachments.patch",
          "httpMethod": "PATCH",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "ServiceAttachment"
          },
          "parameterOrder": [
            "project",
            "region",
            "serviceAttachment"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The region scoping this request and should conform to RFC1035."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "serviceAttachment": {
              "description": "The resource id of the ServiceAttachment to patch. It should conform to\nRFC1035 resource name or be a string form on an unsigned long number.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          }
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Creates a ServiceAttachment in the specified project in the given scope\nusing the parameters that are included in the request.",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region of this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/serviceAttachments",
          "id": "compute.serviceAttachments.insert",
          "request": {
            "$ref": "ServiceAttachment"
          },
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments"
        },
        "get": {
          "description": "Returns the specified ServiceAttachment resource in the given scope.",
          "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
          "id": "compute.serviceAttachments.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "serviceAttachment"
          ],
          "response": {
            "$ref": "ServiceAttachment"
          },
          "parameters": {
            "region": {
              "description": "Name of the region of this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "showNatIps": {
              "location": "query",
              "description": "Indicates whether NAT IPs should be included in the response.",
              "type": "boolean"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "serviceAttachment": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the ServiceAttachment resource to return."
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}"
        }
      }
    },
    "diskTypes": {
      "methods": {
        "get": {
          "id": "compute.diskTypes.get",
          "httpMethod": "GET",
          "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "diskType": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the disk type to return."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "diskType"
          ],
          "description": "Returns the specified disk type.",
          "response": {
            "$ref": "DiskType"
          }
        },
        "list": {
          "parameters": {
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "minimum": "0",
              "format": "uint32",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "response": {
            "$ref": "DiskTypeList"
          },
          "flatPath": "projects/{project}/zones/{zone}/diskTypes",
          "id": "compute.diskTypes.list",
          "path": "projects/{project}/zones/{zone}/diskTypes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of disk types available to the specified\nproject."
        },
        "aggregatedList": {
          "path": "projects/{project}/aggregated/diskTypes",
          "flatPath": "projects/{project}/aggregated/diskTypes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves an aggregated list of disk types.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "id": "compute.diskTypes.aggregatedList",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "DiskTypeAggregatedList"
          },
          "httpMethod": "GET",
          "parameters": {
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "format": "uint32",
              "type": "integer",
              "default": "500",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "location": "query",
              "type": "string"
            },
            "includeAllScopes": {
              "type": "boolean",
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          }
        }
      }
    },
    "acceleratorTypes": {
      "methods": {
        "list": {
          "response": {
            "$ref": "AcceleratorTypeList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes",
          "description": "Retrieves a list of accelerator types that are available to the specified\nproject.",
          "id": "compute.acceleratorTypes.list",
          "path": "projects/{project}/zones/{zone}/acceleratorTypes",
          "parameters": {
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "type": "integer",
              "location": "query"
            }
          },
          "httpMethod": "GET"
        },
        "aggregatedList": {
          "parameterOrder": [
            "project"
          ],
          "id": "compute.acceleratorTypes.aggregatedList",
          "path": "projects/{project}/aggregated/acceleratorTypes",
          "response": {
            "$ref": "AcceleratorTypeAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "description": "Retrieves an aggregated list of accelerator types.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameters": {
            "serviceProjectNumber": {
              "location": "query",
              "type": "string",
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "maxResults": {
              "minimum": "0",
              "format": "uint32",
              "type": "integer",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "includeAllScopes": {
              "type": "boolean",
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "flatPath": "projects/{project}/aggregated/acceleratorTypes"
        },
        "get": {
          "parameterOrder": [
            "project",
            "zone",
            "acceleratorType"
          ],
          "id": "compute.acceleratorTypes.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
          "response": {
            "$ref": "AcceleratorType"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "acceleratorType": {
              "description": "Name of the accelerator type to return.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            }
          },
          "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
          "httpMethod": "GET",
          "description": "Returns the specified accelerator type."
        }
      }
    },
    "globalAddresses": {
      "methods": {
        "setLabels": {
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "httpMethod": "POST",
          "id": "compute.globalAddresses.setLabels",
          "description": "Sets the labels on a GlobalAddress. To learn more about labels, read theLabeling\nResources documentation.",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "flatPath": "projects/{project}/global/addresses/{resource}/setLabels",
          "path": "projects/{project}/global/addresses/{resource}/setLabels",
          "parameterOrder": [
            "project",
            "resource"
          ]
        },
        "insert": {
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "projects/{project}/global/addresses",
          "flatPath": "projects/{project}/global/addresses",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.globalAddresses.insert",
          "description": "Creates an address resource in the specified project by using the data\nincluded in the request.",
          "request": {
            "$ref": "Address"
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "httpMethod": "GET",
          "path": "projects/{project}/global/addresses/{address}",
          "parameters": {
            "address": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the address resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "description": "Returns the specified address resource.",
          "parameterOrder": [
            "project",
            "address"
          ],
          "flatPath": "projects/{project}/global/addresses/{address}",
          "id": "compute.globalAddresses.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Address"
          }
        },
        "testIamPermissions": {
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "id": "compute.globalAddresses.testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "flatPath": "projects/{project}/global/addresses/{resource}/testIamPermissions",
          "path": "projects/{project}/global/addresses/{resource}/testIamPermissions"
        },
        "list": {
          "id": "compute.globalAddresses.list",
          "flatPath": "projects/{project}/global/addresses",
          "path": "projects/{project}/global/addresses",
          "response": {
            "$ref": "AddressList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of global addresses.",
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            }
          }
        },
        "move": {
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/addresses/{address}/move",
          "flatPath": "projects/{project}/global/addresses/{address}/move",
          "id": "compute.globalAddresses.move",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "address": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the address resource to move."
            },
            "project": {
              "description": "Source project ID which the Address is moved from.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "address"
          ],
          "request": {
            "$ref": "GlobalAddressesMoveRequest"
          },
          "description": "Moves the specified address resource from one project to another project."
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "address": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the address resource to delete.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/global/addresses/{address}",
          "description": "Deletes the specified address resource.",
          "id": "compute.globalAddresses.delete",
          "path": "projects/{project}/global/addresses/{address}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "address"
          ]
        }
      }
    },
    "regionNetworkEndpointGroups": {
      "methods": {
        "listNetworkEndpoints": {
          "parameterOrder": [
            "project",
            "region",
            "networkEndpointGroup"
          ],
          "httpMethod": "POST",
          "parameters": {
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "The name of theregion\nwhere the network endpoint group is located. It should comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "networkEndpointGroup": {
              "description": "The name of the network endpoint group from which you want to generate a\nlist of included network endpoints. It should comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints",
          "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
          "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
          },
          "description": "Lists the network endpoints in the specified network endpoint group."
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionNetworkEndpointGroups.insert",
          "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups",
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/networkEndpointGroups",
          "request": {
            "$ref": "NetworkEndpointGroup"
          },
          "description": "Creates a network endpoint group in the specified project using the\nparameters that are included in the request.\n\nNote: Use the following APIs to manage network endpoint groups:\n   \n   - \n   To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity\n   NEGs): zonal\n   API\n   - \n   To manage NEGs with regional scope (such as regional internet NEGs,\n   serverless NEGs, Private Service Connect NEGs): regional\n   API\n   - \n   To manage NEGs with global scope (such as global internet NEGs):global\n   API",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the region where\nyou want to create the network endpoint group. It should comply with\nRFC1035."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "httpMethod": "POST"
        },
        "detachNetworkEndpoints": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints",
          "parameterOrder": [
            "project",
            "region",
            "networkEndpointGroup"
          ],
          "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
          "description": "Detach the network endpoint from the specified network endpoint group.",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the region where\nthe network endpoint group is located. It should comply with\nRFC1035."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query",
              "type": "string"
            },
            "networkEndpointGroup": {
              "description": "The name of the network endpoint group you are detaching network\nendpoints from. It should comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest"
          },
          "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints"
        },
        "delete": {
          "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "region": {
              "description": "The name of the region where\nthe network endpoint group is located. It should comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "networkEndpointGroup": {
              "location": "path",
              "required": true,
              "description": "The name of the network endpoint group to delete. It should comply with\nRFC1035.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "networkEndpointGroup"
          ],
          "description": "Deletes the specified network endpoint group. Note that the NEG cannot be\ndeleted if it is configured as a backend of a backend service.",
          "id": "compute.regionNetworkEndpointGroups.delete",
          "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}"
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups",
          "response": {
            "$ref": "NetworkEndpointGroupList"
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of theregion\nwhere the network endpoint group is located. It should comply with RFC1035."
            },
            "maxResults": {
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0",
              "format": "uint32"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            }
          },
          "description": "Retrieves the list of regional network endpoint groups available to the\nspecified project in the given region.",
          "path": "projects/{project}/regions/{region}/networkEndpointGroups",
          "id": "compute.regionNetworkEndpointGroups.list"
        },
        "get": {
          "parameterOrder": [
            "project",
            "region",
            "networkEndpointGroup"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionNetworkEndpointGroups.get",
          "description": "Returns the specified network endpoint group.",
          "response": {
            "$ref": "NetworkEndpointGroup"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "region": {
              "description": "The name of the region where\nthe network endpoint group is located. It should comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "networkEndpointGroup": {
              "description": "The name of the network endpoint group. It should comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
          "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}"
        },
        "attachNetworkEndpoints": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
          "parameterOrder": [
            "project",
            "region",
            "networkEndpointGroup"
          ],
          "request": {
            "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Attach a list of network endpoints to the specified network endpoint group.",
          "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints",
          "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "networkEndpointGroup": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the network endpoint group where you are attaching network\nendpoints to. It should comply with RFC1035."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "The name of the region where\nyou want to create the network endpoint group. It should comply with\nRFC1035.",
              "type": "string"
            }
          }
        }
      }
    },
    "licenses": {
      "methods": {
        "delete": {
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "license": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the license resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/global/licenses/{license}",
          "httpMethod": "DELETE",
          "path": "projects/{project}/global/licenses/{license}",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "license"
          ],
          "id": "compute.licenses.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified license.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages."
        },
        "update": {
          "description": "Updates a License resource in the specified project.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "id": "compute.licenses.update",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "license": {
              "location": "path",
              "required": true,
              "description": "The license name for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "updateMask": {
              "type": "string",
              "format": "google-fieldmask",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "location": "query"
            }
          },
          "request": {
            "$ref": "License"
          },
          "path": "projects/{project}/global/licenses/{license}",
          "parameterOrder": [
            "project",
            "license"
          ],
          "flatPath": "projects/{project}/global/licenses/{license}",
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "path": "projects/{project}/global/licenses/{license}",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "license": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the License resource to return.",
              "type": "string"
            }
          },
          "description": "Returns the specified License resource.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/licenses/{license}",
          "id": "compute.licenses.get",
          "parameterOrder": [
            "project",
            "license"
          ],
          "response": {
            "$ref": "License"
          }
        },
        "getIamPolicy": {
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy",
          "httpMethod": "GET",
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.licenses.getIamPolicy",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "location": "query",
              "format": "int32",
              "type": "integer"
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/global/licenses/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setIamPolicy": {
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "httpMethod": "POST",
          "id": "compute.licenses.setIamPolicy",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/global/licenses/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ]
        },
        "list": {
          "response": {
            "$ref": "LicensesListResponse"
          },
          "flatPath": "projects/{project}/global/licenses",
          "description": "Retrieves the list of licenses\navailable in the specified project. This method does not\nget any licenses that belong to other projects, including licenses attached\nto publicly-available images, like Debian 9. If you want to get a list of\npublicly-available licenses, use this method to make a request to the\nrespective image project, such as debian-cloud orwindows-cloud.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "minimum": "0",
              "type": "integer",
              "default": "500"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            }
          },
          "path": "projects/{project}/global/licenses",
          "id": "compute.licenses.list",
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "insert": {
          "path": "projects/{project}/global/licenses",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "License"
          },
          "id": "compute.licenses.insert",
          "flatPath": "projects/{project}/global/licenses",
          "parameterOrder": [
            "project"
          ],
          "description": "Create a License resource in the specified project.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/devstorage.full_control",
            "https://www.googleapis.com/auth/devstorage.read_only",
            "https://www.googleapis.com/auth/devstorage.read_write"
          ]
        },
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/licenses/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "httpMethod": "POST",
          "id": "compute.licenses.testIamPermissions",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            }
          }
        }
      }
    },
    "globalForwardingRules": {
      "methods": {
        "insert": {
          "request": {
            "$ref": "ForwardingRule"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/forwardingRules",
          "flatPath": "projects/{project}/global/forwardingRules",
          "description": "Creates a GlobalForwardingRule resource in the specified project using\nthe data included in the request.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.globalForwardingRules.insert",
          "parameterOrder": [
            "project"
          ]
        },
        "get": {
          "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
          "parameterOrder": [
            "project",
            "forwardingRule"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "forwardingRule": {
              "description": "Name of the ForwardingRule resource to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "view": {
              "enum": [
                "BASIC",
                "FULL"
              ],
              "type": "string",
              "location": "query",
              "enumDescriptions": [
                "The default view of a ForwardingRule, which includes the basic fields.",
                "The full view, including the ForwardingRule.`attached_extensions` field."
              ]
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
          "description": "Returns the specified GlobalForwardingRule resource. Gets a list of\navailable forwarding rules by making a list() request.",
          "id": "compute.globalForwardingRules.get",
          "response": {
            "$ref": "ForwardingRule"
          }
        },
        "setLabels": {
          "path": "projects/{project}/global/forwardingRules/{resource}/setLabels",
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "description": "Sets the labels on the specified resource. To learn more about labels,\nread the \nLabeling resources documentation.",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.globalForwardingRules.setLabels",
          "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels"
        },
        "list": {
          "flatPath": "projects/{project}/global/forwardingRules",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "ForwardingRuleList"
          },
          "description": "Retrieves a list of GlobalForwardingRule resources available to the\nspecified project.",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "maxResults": {
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "minimum": "0",
              "location": "query",
              "type": "integer"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/global/forwardingRules",
          "id": "compute.globalForwardingRules.list",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setTarget": {
          "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Changes target URL for the GlobalForwardingRule resource. The new target\nshould be of the same type as the old target.",
          "httpMethod": "POST",
          "request": {
            "$ref": "TargetReference"
          },
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "forwardingRule": {
              "description": "Name of the ForwardingRule resource in which target is to be set.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "forwardingRule"
          ],
          "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
          "id": "compute.globalForwardingRules.setTarget"
        },
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "forwardingRule": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the ForwardingRule resource to patch."
            }
          },
          "httpMethod": "PATCH",
          "id": "compute.globalForwardingRules.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Updates the specified forwarding rule with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules. Currently, you can only\npatch the network_tier field.",
          "request": {
            "$ref": "ForwardingRule"
          },
          "parameterOrder": [
            "project",
            "forwardingRule"
          ],
          "path": "projects/{project}/global/forwardingRules/{forwardingRule}"
        },
        "delete": {
          "httpMethod": "DELETE",
          "id": "compute.globalForwardingRules.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "forwardingRule": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the ForwardingRule resource to delete."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
          "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
          "description": "Deletes the specified GlobalForwardingRule resource.",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "forwardingRule"
          ]
        }
      }
    },
    "instanceSettings": {
      "methods": {
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Patch Instance settings",
          "request": {
            "$ref": "InstanceSettings"
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceSettings",
          "httpMethod": "PATCH",
          "path": "projects/{project}/zones/{zone}/instanceSettings",
          "id": "compute.instanceSettings.patch",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "description": "The zone scoping this request. It should conform to RFC1035.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "updateMask": {
              "type": "string",
              "format": "google-fieldmask",
              "location": "query",
              "description": "update_mask indicates fields to be updated as part of this request."
            }
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "parameterOrder": [
            "project",
            "zone"
          ],
          "description": "Get Instance settings.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/instanceSettings",
          "id": "compute.instanceSettings.get",
          "response": {
            "$ref": "InstanceSettings"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceSettings",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone for this request."
            }
          },
          "httpMethod": "GET"
        }
      }
    },
    "regionTargetHttpProxies": {
      "methods": {
        "insert": {
          "path": "projects/{project}/regions/{region}/targetHttpProxies",
          "id": "compute.regionTargetHttpProxies.insert",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetHttpProxy"
          },
          "flatPath": "projects/{project}/regions/{region}/targetHttpProxies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Creates a TargetHttpProxy resource in the specified project and region\nusing the data included in the request."
        },
        "setUrlMap": {
          "parameterOrder": [
            "project",
            "region",
            "targetHttpProxy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "UrlMapReference"
          },
          "description": "Changes the URL map for TargetHttpProxy.",
          "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
          "id": "compute.regionTargetHttpProxies.setUrlMap",
          "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
          "httpMethod": "POST",
          "parameters": {
            "targetHttpProxy": {
              "description": "Name of the TargetHttpProxy to set a URL map for.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            }
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "delete": {
          "parameterOrder": [
            "project",
            "region",
            "targetHttpProxy"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "targetHttpProxy": {
              "description": "Name of the TargetHttpProxy resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "httpMethod": "DELETE",
          "id": "compute.regionTargetHttpProxies.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
          "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
          "description": "Deletes the specified TargetHttpProxy resource."
        },
        "list": {
          "id": "compute.regionTargetHttpProxies.list",
          "description": "Retrieves the list of TargetHttpProxy resources available\nto the specified project in the specified region.",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "maxResults": {
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "minimum": "0",
              "format": "uint32"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/targetHttpProxies",
          "response": {
            "$ref": "TargetHttpProxyList"
          },
          "flatPath": "projects/{project}/regions/{region}/targetHttpProxies"
        },
        "get": {
          "response": {
            "$ref": "TargetHttpProxy"
          },
          "id": "compute.regionTargetHttpProxies.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "targetHttpProxy": {
              "type": "string",
              "description": "Name of the TargetHttpProxy resource to return.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "description": "Returns the specified TargetHttpProxy resource in the specified region.",
          "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
          "parameterOrder": [
            "project",
            "region",
            "targetHttpProxy"
          ]
        }
      }
    },
    "organizationSecurityPolicies": {
      "methods": {
        "listPreconfiguredExpressionSets": {
          "path": "locations/global/securityPolicies/listPreconfiguredExpressionSets",
          "id": "compute.organizationSecurityPolicies.listPreconfiguredExpressionSets",
          "response": {
            "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
          },
          "parameters": {
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "location": "query",
              "minimum": "0",
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "parentId": {
              "location": "query",
              "type": "string",
              "description": "Parent ID for this request."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "description": "Gets the current list of preconfigured Web Application Firewall (WAF)\nexpressions.",
          "flatPath": "locations/global/securityPolicies/listPreconfiguredExpressionSets"
        },
        "patch": {
          "description": "Patches the specified policy with the data included in the request.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.patch instead.",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "description": "Name of the security policy to update.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "parameterOrder": [
            "securityPolicy"
          ],
          "flatPath": "locations/global/securityPolicies/{securityPolicy}",
          "request": {
            "$ref": "SecurityPolicy"
          },
          "path": "locations/global/securityPolicies/{securityPolicy}",
          "id": "compute.organizationSecurityPolicies.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "addAssociation": {
          "id": "compute.organizationSecurityPolicies.addAssociation",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "securityPolicy"
          ],
          "description": "Inserts an association for the specified security policy.\n\nThis has billing implications.  Projects in the hierarchy with effective\nhierarchical security policies will be automatically enrolled into Cloud\nArmor Enterprise if not already enrolled.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.addAssociation\ninstead.",
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
          "httpMethod": "POST",
          "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
          "parameters": {
            "replaceExistingAssociation": {
              "location": "query",
              "type": "boolean",
              "description": "Indicates whether or not to replace it if an association of the attachment\nalready exists. This is false by default, in which case an error will be\nreturned if an association already exists."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "securityPolicy": {
              "description": "Name of the security policy to update.",
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SecurityPolicyAssociation"
          }
        },
        "getRule": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "description": "Name of the security policy to which the queried rule belongs.",
              "type": "string"
            },
            "priority": {
              "type": "integer",
              "location": "query",
              "description": "The priority of the rule to get from the security policy.",
              "format": "int32"
            }
          },
          "parameterOrder": [
            "securityPolicy"
          ],
          "description": "Gets a rule at the specified priority.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.getRule instead.",
          "id": "compute.organizationSecurityPolicies.getRule",
          "path": "locations/global/securityPolicies/{securityPolicy}/getRule",
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/getRule",
          "response": {
            "$ref": "SecurityPolicyRule"
          }
        },
        "get": {
          "description": "List all of the ordered rules present in a single specified policy.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.get instead.",
          "response": {
            "$ref": "SecurityPolicy"
          },
          "flatPath": "locations/global/securityPolicies/{securityPolicy}",
          "parameterOrder": [
            "securityPolicy"
          ],
          "parameters": {
            "securityPolicy": {
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the security policy to get."
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.organizationSecurityPolicies.get",
          "path": "locations/global/securityPolicies/{securityPolicy}"
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.organizationSecurityPolicies.list",
          "flatPath": "locations/global/securityPolicies",
          "path": "locations/global/securityPolicies",
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "parentId": {
              "location": "query",
              "type": "string",
              "description": "Parent ID for this request."
            },
            "maxResults": {
              "location": "query",
              "type": "integer",
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            }
          },
          "description": "List all the policies that have been configured for the specified\norganization.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.list instead.",
          "response": {
            "$ref": "SecurityPolicyList"
          }
        },
        "getAssociation": {
          "description": "Gets an association with the specified name.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.getAssociation\ninstead.",
          "httpMethod": "GET",
          "response": {
            "$ref": "SecurityPolicyAssociation"
          },
          "parameters": {
            "name": {
              "location": "query",
              "type": "string",
              "description": "The name of the association to get from the security policy."
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "type": "string",
              "description": "Name of the security policy to which the queried rule belongs."
            }
          },
          "parameterOrder": [
            "securityPolicy"
          ],
          "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.organizationSecurityPolicies.getAssociation"
        },
        "copyRules": {
          "description": "Copies rules to the specified security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.cloneRules\ninstead.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "locations/global/securityPolicies/{securityPolicy}/copyRules",
          "parameterOrder": [
            "securityPolicy"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.organizationSecurityPolicies.copyRules",
          "parameters": {
            "sourceSecurityPolicy": {
              "description": "The security policy from which to copy rules.",
              "location": "query",
              "type": "string"
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "type": "string",
              "description": "Name of the security policy to update."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/copyRules",
          "httpMethod": "POST"
        },
        "move": {
          "path": "locations/global/securityPolicies/{securityPolicy}/move",
          "parameterOrder": [
            "securityPolicy"
          ],
          "parameters": {
            "parentId": {
              "description": "The new parent of the security policy.",
              "type": "string",
              "location": "query"
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "description": "Name of the security policy to update.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/move",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.organizationSecurityPolicies.move",
          "description": "Moves the specified security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.move instead."
        },
        "listAssociations": {
          "flatPath": "locations/global/securityPolicies/listAssociations",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "targetResource": {
              "location": "query",
              "description": "The target resource to list associations. It is an organization, or a\nfolder.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "locations/global/securityPolicies/listAssociations",
          "response": {
            "$ref": "OrganizationSecurityPoliciesListAssociationsResponse"
          },
          "description": "Lists associations of a specified target, i.e., organization or folder.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.listAssociations\ninstead.",
          "id": "compute.organizationSecurityPolicies.listAssociations"
        },
        "insert": {
          "description": "Creates a new policy in the specified organization using the data included\nin the request.\n\nUse this API to add Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to add firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.insert instead.",
          "parameters": {
            "parentId": {
              "type": "string",
              "location": "query",
              "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\"\nif the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the\nparent is an organization."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "id": "compute.organizationSecurityPolicies.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "SecurityPolicy"
          },
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "locations/global/securityPolicies",
          "path": "locations/global/securityPolicies"
        },
        "patchRule": {
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "priority": {
              "format": "int32",
              "location": "query",
              "description": "The priority of the rule to patch.",
              "type": "integer"
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "description": "Name of the security policy to update.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "securityPolicy"
          ],
          "request": {
            "$ref": "SecurityPolicyRule"
          },
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/patchRule",
          "id": "compute.organizationSecurityPolicies.patchRule",
          "description": "Patches a rule at the specified priority.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.patchRule\ninstead.",
          "response": {
            "$ref": "Operation"
          },
          "path": "locations/global/securityPolicies/{securityPolicy}/patchRule"
        },
        "delete": {
          "flatPath": "locations/global/securityPolicies/{securityPolicy}",
          "parameterOrder": [
            "securityPolicy"
          ],
          "httpMethod": "DELETE",
          "path": "locations/global/securityPolicies/{securityPolicy}",
          "parameters": {
            "securityPolicy": {
              "type": "string",
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "description": "Name of the security policy to delete.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified policy.\n\nUse this API to remove Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to remove firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.delete instead.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.organizationSecurityPolicies.delete"
        },
        "removeAssociation": {
          "parameters": {
            "name": {
              "type": "string",
              "location": "query",
              "description": "Name for the attachment that will be removed."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the security policy to update.",
              "pattern": "(securityPolicies/)?[0-9]{0,20}"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Removes an association for the specified security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.removeAssociation\ninstead.",
          "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
          "httpMethod": "POST",
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
          "parameterOrder": [
            "securityPolicy"
          ],
          "id": "compute.organizationSecurityPolicies.removeAssociation",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "addRule": {
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "(securityPolicies/)?[0-9]{0,20}",
              "description": "Name of the security policy to update.",
              "type": "string"
            }
          },
          "description": "Inserts a rule into a security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.addRule instead.",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.organizationSecurityPolicies.addRule",
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/addRule",
          "path": "locations/global/securityPolicies/{securityPolicy}/addRule",
          "request": {
            "$ref": "SecurityPolicyRule"
          },
          "parameterOrder": [
            "securityPolicy"
          ]
        },
        "removeRule": {
          "description": "Deletes a rule at the specified priority.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.removeRule\ninstead.",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.organizationSecurityPolicies.removeRule",
          "path": "locations/global/securityPolicies/{securityPolicy}/removeRule",
          "flatPath": "locations/global/securityPolicies/{securityPolicy}/removeRule",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the security policy to update.",
              "pattern": "(securityPolicies/)?[0-9]{0,20}"
            },
            "priority": {
              "type": "integer",
              "description": "The priority of the rule to remove from the security policy.",
              "format": "int32",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "securityPolicy"
          ]
        }
      }
    },
    "targetGrpcProxies": {
      "methods": {
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
          "description": "Deletes the specified TargetGrpcProxy in the given scope",
          "httpMethod": "DELETE",
          "id": "compute.targetGrpcProxies.delete",
          "parameterOrder": [
            "project",
            "targetGrpcProxy"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "targetGrpcProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the TargetGrpcProxy resource to delete."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          }
        },
        "list": {
          "flatPath": "projects/{project}/global/targetGrpcProxies",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/global/targetGrpcProxies",
          "response": {
            "$ref": "TargetGrpcProxyList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.targetGrpcProxies.list",
          "description": "Lists the TargetGrpcProxies for a project in the given scope.",
          "parameters": {
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "maxResults": {
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "location": "query",
              "type": "integer",
              "format": "uint32"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "httpMethod": "GET"
        },
        "patch": {
          "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
          "parameters": {
            "targetGrpcProxy": {
              "description": "Name of the TargetGrpcProxy resource to patch.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "targetGrpcProxy"
          ],
          "httpMethod": "PATCH",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.targetGrpcProxies.patch",
          "request": {
            "$ref": "TargetGrpcProxy"
          },
          "description": "Patches the specified TargetGrpcProxy resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}"
        },
        "get": {
          "description": "Returns the specified TargetGrpcProxy resource in the given scope.",
          "parameterOrder": [
            "project",
            "targetGrpcProxy"
          ],
          "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "targetGrpcProxy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the TargetGrpcProxy resource to return."
            }
          },
          "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
          "id": "compute.targetGrpcProxies.get",
          "response": {
            "$ref": "TargetGrpcProxy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "insert": {
          "description": "Creates a TargetGrpcProxy in the specified project in the given scope\nusing the parameters that are included in the request.",
          "id": "compute.targetGrpcProxies.insert",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/global/targetGrpcProxies",
          "flatPath": "projects/{project}/global/targetGrpcProxies",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetGrpcProxy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        }
      }
    },
    "storagePools": {
      "methods": {
        "list": {
          "path": "projects/{project}/zones/{zone}/storagePools",
          "response": {
            "$ref": "StoragePoolList"
          },
          "flatPath": "projects/{project}/zones/{zone}/storagePools",
          "description": "Retrieves a list of storage pools contained within\nthe specified zone.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone"
          ],
          "id": "compute.storagePools.list",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET"
        },
        "listDisks": {
          "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks",
          "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks",
          "httpMethod": "GET",
          "parameters": {
            "storagePool": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the storage pool to list disks of.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "storagePool"
          ],
          "response": {
            "$ref": "StoragePoolListDisks"
          },
          "description": "Lists the disks in a specified storage pool.",
          "id": "compute.storagePools.listDisks",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "insert": {
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone"
          ],
          "id": "compute.storagePools.insert",
          "description": "Creates a storage pool in the specified project using the data\nin the request.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/storagePools",
          "request": {
            "$ref": "StoragePool"
          },
          "flatPath": "projects/{project}/zones/{zone}/storagePools"
        },
        "testIamPermissions": {
          "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions",
          "id": "compute.storagePools.testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "path": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions"
        },
        "setIamPolicy": {
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.storagePools.setIamPolicy",
          "request": {
            "$ref": "ZoneSetPolicyRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy."
        },
        "delete": {
          "parameters": {
            "storagePool": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the storage pool to delete.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.storagePools.delete",
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "zone",
            "storagePool"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}",
          "description": "Deletes the specified storage pool. Deleting a storagePool\nremoves its data permanently and is irreversible. However, deleting a\nstoragePool does not delete any snapshots previously\nmade from the storagePool. You must separately delete\nsnapshots.",
          "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}"
        },
        "update": {
          "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}",
          "request": {
            "$ref": "StoragePool"
          },
          "id": "compute.storagePools.update",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "parameters": {
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "storagePool": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The storagePool name for this request."
            },
            "updateMask": {
              "location": "query",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "format": "google-fieldmask",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Updates the specified storagePool with the data included in the request.\nThe update is performed only on selected fields included as part\nof update-mask. Only the following fields can be modified:\npool_provisioned_capacity_gb, pool_provisioned_iops and\npool_provisioned_throughput.",
          "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}",
          "parameterOrder": [
            "project",
            "zone",
            "storagePool"
          ]
        },
        "getIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "id": "compute.storagePools.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            },
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "location": "query",
              "description": "Requested IAM Policy version.",
              "type": "integer"
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy"
        },
        "aggregatedList": {
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "location": "query",
              "type": "string",
              "format": "int64"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "default": "500"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "description": "Retrieves an aggregated list of storage pools.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "id": "compute.storagePools.aggregatedList",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "StoragePoolAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/aggregated/storagePools",
          "flatPath": "projects/{project}/aggregated/storagePools"
        },
        "get": {
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "storagePool": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the storage pool to return.",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            }
          },
          "httpMethod": "GET",
          "description": "Returns a specified storage pool. Gets a list of available\nstorage pools by making a list() request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "storagePool"
          ],
          "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}",
          "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}",
          "response": {
            "$ref": "StoragePool"
          },
          "id": "compute.storagePools.get"
        }
      }
    },
    "regionInstanceGroupManagers": {
      "methods": {
        "patch": {
          "id": "compute.regionInstanceGroupManagers.patch",
          "request": {
            "$ref": "InstanceGroupManager"
          },
          "description": "Updates a managed instance group using the information that you specify\nin the request.\nThis operation is marked as DONE when the group is patched\neven if the instances in the group are still in the process of being\npatched. You must separately verify the status of the individual instances\nwith the listmanagedinstances\nmethod. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.\n\nIf you update your group to specify a new template or instance\nconfiguration, it's possible that your intended specification for each VM\nin the group is different from the current state of that VM. To learn how\nto apply an updated configuration to the VMs in a MIG, seeUpdating instances in\na MIG.",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the instance group manager."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "httpMethod": "PATCH"
        },
        "listPerInstanceConfigs": {
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
          "response": {
            "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
          },
          "description": "Lists all of the per-instance configurations defined for the managed\ninstance group. The orderBy query parameter is not supported.",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group. It should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request, should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "format": "uint32",
              "type": "integer",
              "location": "query",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "httpMethod": "POST"
        },
        "patchPerInstanceConfigs": {
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request, should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "instanceGroupManager": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group.\nIt should conform to RFC1035."
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "request": {
            "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Inserts or patches per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
          "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
          "response": {
            "$ref": "Operation"
          }
        },
        "applyUpdatesToInstances": {
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "description": "Apply updates to selected instances the managed instance group.",
          "request": {
            "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
          },
          "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request, should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group, should conform to RFC1035.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "list": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Retrieves the list of managed instance groups that are contained\nwithin the specified region.",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers",
          "parameters": {
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "format": "uint32"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "RegionInstanceGroupManagerList"
          },
          "id": "compute.regionInstanceGroupManagers.list",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "deleteInstances": {
          "description": "Flags the specified instances in the managed instance group to be\nimmediately deleted. The instances are also removed from any target\npools of which they were a member. This method reduces thetargetSize of the managed instance group by the number of\ninstances that you delete.\nThe deleteInstances operation is marked DONE if\nthe deleteInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of thedeleting action with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "id": "compute.regionInstanceGroupManagers.deleteInstances",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "noGracefulShutdown": {
              "type": "boolean",
              "default": "false",
              "location": "query",
              "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances."
            },
            "instanceGroupManager": {
              "description": "Name of the managed instance group.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
          }
        },
        "suspendInstances": {
          "id": "compute.regionInstanceGroupManagers.suspendInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/suspendInstances",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "RegionInstanceGroupManagersSuspendInstancesRequest"
          },
          "description": "Flags the specified instances in the managed instance group to be\nimmediately suspended. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetSuspendedSize\nof the managed instance group by the number of instances that you suspend.\nThe suspendInstances operation is marked DONE if\nthe suspendInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSUSPENDING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays suspension of the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is suspended.\n\nSuspended instances can be resumed using the resumeInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "Name of the managed instance group.",
              "type": "string"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/suspendInstances",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ]
        },
        "createInstances": {
          "description": "Creates instances with per-instance configurations in this regional managed\ninstance group. Instances are created using the current instance template.\nThe create instances operation is marked DONE if\nthe createInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of thecreating or actions with the listmanagedinstances\nmethod.",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "The name of theregion\nwhere the managed instance group is located.\nIt should conform to RFC1035.",
              "type": "string"
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.\nIt should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "id": "compute.regionInstanceGroupManagers.createInstances"
        },
        "updatePerInstanceConfigs": {
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request, should conform to RFC1035."
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group.\nIt should conform to RFC1035.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
          "request": {
            "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Inserts or updates per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "resize": {
          "id": "compute.regionInstanceGroupManagers.resize",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager",
            "size"
          ],
          "description": "Changes the intended size of the managed instance group. If you increase\nthe size, the group creates new instances using the current instance\ntemplate. If you decrease the size, the group deletes one or more\ninstances.\n\nThe resize operation is marked DONE if theresize request is successful. The underlying actions take\nadditional time. You must separately verify the status of thecreating or deleting actions with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "instanceGroupManager": {
              "type": "string",
              "description": "Name of the managed instance group.",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "size": {
              "minimum": "0",
              "location": "query",
              "required": true,
              "type": "integer",
              "format": "int32",
              "description": "Number of instances that should exist in this instance group\nmanager."
            }
          },
          "httpMethod": "POST"
        },
        "abandonInstances": {
          "request": {
            "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
          },
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            },
            "instanceGroupManager": {
              "type": "string",
              "description": "Name of the managed instance group.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "id": "compute.regionInstanceGroupManagers.abandonInstances",
          "httpMethod": "POST",
          "description": "Flags the specified instances to be immediately removed from the managed\ninstance group. Abandoning an instance does not delete the\ninstance, but it does remove the instance from any target pools that are\napplied by the managed instance group. This method reduces thetargetSize of the managed instance group by the\nnumber of instances that you abandon. This operation is marked asDONE when the action is scheduled even if the instances have\nnot yet been removed from the group. You must separately verify the\nstatus of the abandoning action with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ]
        },
        "resumeInstances": {
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resumeInstances",
          "id": "compute.regionInstanceGroupManagers.resumeInstances",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "instanceGroupManager": {
              "type": "string",
              "description": "Name of the managed instance group.",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "description": "Flags the specified instances in the managed instance group to be\nresumed. This method increases thetargetSize and decreases the targetSuspendedSize\nof the managed instance group by the number of instances that you resume.\nThe resumeInstances operation is marked DONE if\nthe resumeInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theRESUMING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are suspended. For\nexample, if an instance was previously suspended using the suspendInstances\nmethod, it can be resumed using the resumeInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are resumed.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resumeInstances",
          "request": {
            "$ref": "RegionInstanceGroupManagersResumeInstancesRequest"
          }
        },
        "deletePerInstanceConfigs": {
          "httpMethod": "POST",
          "parameters": {
            "instanceGroupManager": {
              "description": "The name of the managed instance group. It should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request, should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
          },
          "description": "Deletes selected per-instance configurations for the managed instance\ngroup.",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs"
        },
        "listManagedInstances": {
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "instanceGroupManager": {
              "description": "The name of the managed instance group.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Lists the instances in the managed instance group and instances that are\nscheduled to be created. The list includes any current actions\nthat the group has scheduled for its instances. The orderBy\nquery parameter is not supported.   The `pageToken` query parameter is\nsupported only if the group's `listManagedInstancesResults` field is set\nto `PAGINATED`.",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "response": {
            "$ref": "RegionInstanceGroupManagersListInstancesResponse"
          },
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
          "id": "compute.regionInstanceGroupManagers.listManagedInstances"
        },
        "delete": {
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified managed instance group and all of the instances\nin that group.",
          "id": "compute.regionInstanceGroupManagers.delete",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "noGracefulShutdown": {
              "location": "query",
              "type": "boolean",
              "default": "false",
              "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances."
            },
            "instanceGroupManager": {
              "type": "string",
              "description": "Name of the managed instance group to delete.",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "DELETE"
        },
        "recreateInstances": {
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "noGracefulShutdown": {
              "default": "false",
              "type": "boolean",
              "location": "query",
              "description": "When set, graceful shutdown is skipped for instance recreation even if it's\nconfigured for the instances."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the managed instance group."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "description": "Flags the specified VM instances in the managed instance group to be\nimmediately recreated. Each instance is recreated using the group's current\nconfiguration. This operation is marked as DONE when the flag\nis set even if the instances have not yet been recreated. You must\nseparately verify the status of each instance by checking itscurrentAction field; for more information, see Checking\nthe status of managed instances.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
          "id": "compute.regionInstanceGroupManagers.recreateInstances",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "RegionInstanceGroupManagersRecreateRequest"
          }
        },
        "stopInstances": {
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/stopInstances",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "id": "compute.regionInstanceGroupManagers.stopInstances",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/stopInstances",
          "description": "Flags the specified instances in the managed instance group to be\nimmediately stopped. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetStoppedSize\nof the managed instance group by the number of instances that you stop.\nThe stopInstances operation is marked DONE if\nthe stopInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTOPPING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays stopping the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is stopped.\n\nStopped instances can be started using the startInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "RegionInstanceGroupManagersStopInstancesRequest"
          },
          "parameters": {
            "noGracefulShutdown": {
              "location": "query",
              "type": "boolean",
              "default": "false",
              "description": "When set, graceful shutdown is skipped for instance stopping even if it's\nconfigured for the instances."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the managed instance group."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "get": {
          "id": "compute.regionInstanceGroupManagers.get",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "description": "Name of the managed instance group to return.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "description": "Returns all of the details about the specified managed instance group.",
          "response": {
            "$ref": "InstanceGroupManager"
          },
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ]
        },
        "insert": {
          "id": "compute.regionInstanceGroupManagers.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "InstanceGroupManager"
          },
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "description": "Creates a managed instance group using the information that you specify\nin the request. After the group is created, instances in the group are\ncreated using the specified instance template.\nThis operation is marked as DONE when the group is created\neven if the instances in the group have not yet been created. You must\nseparately verify the status of the individual instances with thelistmanagedinstances\nmethod.\n\nA regional managed instance group can contain up to 2000 instances.",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers"
        },
        "listErrors": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
          "parameters": {
            "instanceGroupManager": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the managed instance group.\nIt must be a string that meets the requirements in RFC1035, or an\nunsigned long integer: must match regexp pattern:\n(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.\nThis should conform to RFC1035.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "response": {
            "$ref": "RegionInstanceGroupManagersListErrorsResponse"
          },
          "description": "Lists all errors thrown by actions on instances for a given regional\nmanaged instance group. The filter andorderBy query parameters are not supported.",
          "id": "compute.regionInstanceGroupManagers.listErrors",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors"
        },
        "startInstances": {
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "instanceGroupManager": {
              "type": "string",
              "description": "Name of the managed instance group.",
              "location": "path",
              "required": true
            }
          },
          "request": {
            "$ref": "RegionInstanceGroupManagersStartInstancesRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/startInstances",
          "description": "Flags the specified instances in the managed instance group to be\nstarted. This method increases thetargetSize and decreases the targetStoppedSize\nof the managed instance group by the number of instances that you start.\nThe startInstances operation is marked DONE if\nthe startInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTARTING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are stopped. For\nexample, if an instance was previously stopped using the stopInstances\nmethod, it can be started using the startInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are started.\n\nYou can specify a maximum of 1000 instances with this method per request.",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/startInstances",
          "id": "compute.regionInstanceGroupManagers.startInstances",
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "setTargetPools": {
          "description": "Modifies the target pools to which all new instances in this group are\nassigned. Existing instances in the group are not affected.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "instanceGroupManager": {
              "description": "Name of the managed instance group.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
          "id": "compute.regionInstanceGroupManagers.setTargetPools",
          "request": {
            "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ]
        },
        "setInstanceTemplate": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
          "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
          "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
          "description": "Sets the instance template to use when creating new instances or recreating\ninstances in this group. Existing instances are not affected.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "instanceGroupManager": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the managed instance group."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "request": {
            "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroupManager"
          ]
        }
      }
    },
    "instanceTemplates": {
      "methods": {
        "aggregatedList": {
          "path": "projects/{project}/aggregated/instanceTemplates",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "location": "query",
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Name of the project scoping this request."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "httpMethod": "GET",
          "description": "Retrieves the list of all InstanceTemplates resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/instanceTemplates",
          "id": "compute.instanceTemplates.aggregatedList",
          "response": {
            "$ref": "InstanceTemplateAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "path": "projects/{project}/global/instanceTemplates",
          "description": "Retrieves a list of instance templates that are contained within\nthe specified project.",
          "flatPath": "projects/{project}/global/instanceTemplates",
          "id": "compute.instanceTemplates.list",
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "InstanceTemplateList"
          }
        },
        "insert": {
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/global/instanceTemplates",
          "request": {
            "$ref": "InstanceTemplate"
          },
          "path": "projects/{project}/global/instanceTemplates",
          "description": "Creates an instance template in the specified project using the\ndata that is included in the request. If you are creating a new template to\nupdate an existing instance group, your new instance template must use the\nsame network or, if applicable, the same subnetwork as the original\ntemplate.",
          "id": "compute.instanceTemplates.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "get": {
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "instanceTemplate": {
              "type": "string",
              "description": "The name of the instance template.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "InstanceTemplate"
          },
          "id": "compute.instanceTemplates.get",
          "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
          "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
          "description": "Returns the specified instance template.",
          "parameterOrder": [
            "project",
            "instanceTemplate"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.instanceTemplates.delete",
          "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
          "description": "Deletes the specified instance template. Deleting an instance template is\npermanent and cannot be undone. It is not possible to delete templates\nthat are already in use by a managed instance group.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "instanceTemplate"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "instanceTemplate": {
              "location": "path",
              "required": true,
              "description": "The name of the instance template to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}"
        },
        "getIamPolicy": {
          "id": "compute.instanceTemplates.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
          "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "type": "integer",
              "location": "query",
              "description": "Requested IAM Policy version."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "Policy"
          }
        },
        "setIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
          "id": "compute.instanceTemplates.setIamPolicy",
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          }
        },
        "testIamPermissions": {
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "flatPath": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.instanceTemplates.testIamPermissions",
          "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the resource for this request."
            }
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "httpMethod": "POST"
        }
      }
    },
    "targetVpnGateways": {
      "methods": {
        "insert": {
          "flatPath": "projects/{project}/regions/{region}/targetVpnGateways",
          "path": "projects/{project}/regions/{region}/targetVpnGateways",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "TargetVpnGateway"
          },
          "id": "compute.targetVpnGateways.insert",
          "description": "Creates a target VPN gateway in the specified project and region using\nthe data included in the request.",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          }
        },
        "aggregatedList": {
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "location": "query",
              "type": "string",
              "format": "int64"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "default": "500",
              "location": "query",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            }
          },
          "description": "Retrieves an aggregated list of target VPN gateways.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "id": "compute.targetVpnGateways.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/aggregated/targetVpnGateways",
          "flatPath": "projects/{project}/aggregated/targetVpnGateways",
          "response": {
            "$ref": "TargetVpnGatewayAggregatedList"
          }
        },
        "setLabels": {
          "id": "compute.targetVpnGateways.setLabels",
          "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The region for this request.",
              "location": "path",
              "required": true
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read theLabeling\nResources documentation.",
          "response": {
            "$ref": "Operation"
          }
        },
        "delete": {
          "description": "Deletes the specified target VPN gateway.",
          "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
          "id": "compute.targetVpnGateways.delete",
          "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "targetVpnGateway"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "targetVpnGateway": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the target VPN gateway to delete.",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          }
        },
        "get": {
          "description": "Returns the specified target VPN gateway.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
          "parameters": {
            "targetVpnGateway": {
              "location": "path",
              "required": true,
              "description": "Name of the target VPN gateway to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "TargetVpnGateway"
          },
          "id": "compute.targetVpnGateways.get",
          "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
          "parameterOrder": [
            "project",
            "region",
            "targetVpnGateway"
          ]
        },
        "list": {
          "path": "projects/{project}/regions/{region}/targetVpnGateways",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetVpnGateways",
          "description": "Retrieves a list of target VPN gateways available to the specified\nproject and region.",
          "response": {
            "$ref": "TargetVpnGatewayList"
          },
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "location": "query",
              "type": "integer",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            }
          },
          "id": "compute.targetVpnGateways.list",
          "parameterOrder": [
            "project",
            "region"
          ]
        }
      }
    },
    "interconnectGroups": {
      "methods": {
        "testIamPermissions": {
          "parameterOrder": [
            "project",
            "resource"
          ],
          "id": "compute.interconnectGroups.testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "projects/{project}/global/interconnectGroups/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "path": "projects/{project}/global/interconnectGroups/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        },
        "get": {
          "description": "Returns the specified InterconnectGroup resource in the given scope.",
          "response": {
            "$ref": "InterconnectGroup"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "interconnectGroup": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the InterconnectGroup resource to return.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "interconnectGroup"
          ],
          "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}",
          "id": "compute.interconnectGroups.get",
          "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}"
        },
        "setIamPolicy": {
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/interconnectGroups/{resource}/setIamPolicy",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "id": "compute.interconnectGroups.setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/global/interconnectGroups/{resource}/setIamPolicy"
        },
        "delete": {
          "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}",
          "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}",
          "parameterOrder": [
            "project",
            "interconnectGroup"
          ],
          "description": "Deletes the specified InterconnectGroup in the given scope",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.interconnectGroups.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder"
            },
            "interconnectGroup": {
              "type": "string",
              "description": "Name of the InterconnectGroup resource to delete.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          }
        },
        "createMembers": {
          "request": {
            "$ref": "InterconnectGroupsCreateMembersRequest"
          },
          "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}/createMembers",
          "parameterOrder": [
            "project",
            "interconnectGroup"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "interconnectGroup": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the group resource to create members for."
            }
          },
          "httpMethod": "POST",
          "description": "Create Interconnects with redundancy by creating them in a specified\ninterconnect group.",
          "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}/createMembers",
          "id": "compute.interconnectGroups.createMembers"
        },
        "list": {
          "description": "Lists the InterconnectGroups for a project in the given scope.",
          "path": "projects/{project}/global/interconnectGroups",
          "id": "compute.interconnectGroups.list",
          "flatPath": "projects/{project}/global/interconnectGroups",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "default": "500",
              "type": "integer",
              "minimum": "0",
              "format": "uint32"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "InterconnectGroupsListResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "getIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/global/interconnectGroups/{resource}/getIamPolicy",
          "flatPath": "projects/{project}/global/interconnectGroups/{resource}/getIamPolicy",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "id": "compute.interconnectGroups.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "parameterOrder": [
            "project",
            "resource"
          ]
        },
        "insert": {
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "POST",
          "id": "compute.interconnectGroups.insert",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "InterconnectGroup"
          },
          "flatPath": "projects/{project}/global/interconnectGroups",
          "description": "Creates a InterconnectGroup in the specified project in the given scope\nusing the parameters that are included in the request.",
          "path": "projects/{project}/global/interconnectGroups"
        },
        "getOperationalStatus": {
          "parameterOrder": [
            "project",
            "interconnectGroup"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.interconnectGroups.getOperationalStatus",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "interconnectGroup": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the interconnectGroup resource to query."
            }
          },
          "httpMethod": "GET",
          "description": "Returns the interconnectStatuses for the specified\nInterconnectGroup.",
          "response": {
            "$ref": "InterconnectGroupsGetOperationalStatusResponse"
          },
          "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}/getOperationalStatus",
          "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}/getOperationalStatus"
        },
        "patch": {
          "description": "Patches the specified InterconnectGroup resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "parameterOrder": [
            "project",
            "interconnectGroup"
          ],
          "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "InterconnectGroup"
          },
          "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "id": "compute.interconnectGroups.patch",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "updateMask": {
              "description": "The list of fields to update.",
              "location": "query",
              "format": "google-fieldmask",
              "type": "string"
            },
            "interconnectGroup": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the InterconnectGroup resource to patch.",
              "type": "string"
            }
          }
        }
      }
    },
    "subnetworks": {
      "methods": {
        "testIamPermissions": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request."
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
          "id": "compute.subnetworks.testIamPermissions"
        },
        "delete": {
          "httpMethod": "DELETE",
          "parameters": {
            "subnetwork": {
              "type": "string",
              "description": "Name of the Subnetwork resource to delete.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "subnetwork"
          ],
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
          "description": "Deletes the specified subnetwork.",
          "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.subnetworks.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "expandIpCidrRange": {
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
          "request": {
            "$ref": "SubnetworksExpandIpCidrRangeRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "subnetwork": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Subnetwork resource to update.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.subnetworks.expandIpCidrRange",
          "parameterOrder": [
            "project",
            "region",
            "subnetwork"
          ],
          "description": "Expands the IP CIDR range of the subnetwork to a specified value."
        },
        "setPrivateIpGoogleAccess": {
          "id": "compute.subnetworks.setPrivateIpGoogleAccess",
          "description": "Set whether VMs in this subnet can access Google services without assigning\nexternal IP addresses through Private Google Access.",
          "request": {
            "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string"
            },
            "subnetwork": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the Subnetwork resource.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
          "parameterOrder": [
            "project",
            "region",
            "subnetwork"
          ],
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess"
        },
        "getIamPolicy": {
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            },
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.subnetworks.getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists."
        },
        "listUsable": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "serviceProject": {
              "type": "string",
              "description": "The project id or project number in which the subnetwork is intended to be\nused. Only applied for Shared VPC. See [Shared VPC\ndocumentation](https://cloud.google.com/vpc/docs/shared-vpc/)",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "format": "uint32",
              "location": "query",
              "type": "integer",
              "default": "500"
            }
          },
          "response": {
            "$ref": "UsableSubnetworksAggregatedList"
          },
          "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
          "httpMethod": "GET",
          "path": "projects/{project}/aggregated/subnetworks/listUsable",
          "id": "compute.subnetworks.listUsable",
          "flatPath": "projects/{project}/aggregated/subnetworks/listUsable",
          "parameterOrder": [
            "project"
          ]
        },
        "get": {
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "views": {
              "enumDescriptions": [
                "",
                "Utilization data is included in the response."
              ],
              "type": "string",
              "location": "query",
              "enum": [
                "DEFAULT",
                "WITH_UTILIZATION"
              ],
              "repeated": true,
              "description": "Defines the extra views returned back in the subnetwork resource.\nSupported values:\n   \n   - WITH_UTILIZATION: Utilization data is included in the\n   response."
            },
            "subnetwork": {
              "description": "Name of the Subnetwork resource to return.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "subnetwork"
          ],
          "response": {
            "$ref": "Subnetwork"
          },
          "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
          "id": "compute.subnetworks.get",
          "description": "Returns the specified subnetwork.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "patch": {
          "description": "Patches the specified subnetwork with the data included in the request.\nOnly certain fields can be updated with a patch request\nas indicated in the field descriptions.\nYou must specify the current fingerprint of the\nsubnetwork resource being patched.",
          "parameterOrder": [
            "project",
            "region",
            "subnetwork"
          ],
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
          "request": {
            "$ref": "Subnetwork"
          },
          "id": "compute.subnetworks.patch",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "subnetwork": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the Subnetwork resource to patch."
            },
            "drainTimeoutSeconds": {
              "type": "integer",
              "format": "int32",
              "location": "query",
              "description": "The drain timeout specifies the upper bound in seconds on the amount of\ntime allowed to drain connections from the current ACTIVE subnetwork\nto the current BACKUP subnetwork. The drain timeout is only applicable\nwhen the following conditions are true:\n - the subnetwork being patched has purpose = INTERNAL_HTTPS_LOAD_BALANCER\n - the subnetwork being patched has role = BACKUP\n - the patch request is setting the role to ACTIVE. Note that after this\n   patch operation the roles of the ACTIVE and BACKUP subnetworks will be\n   swapped."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "list": {
          "flatPath": "projects/{project}/regions/{region}/subnetworks",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/subnetworks",
          "id": "compute.subnetworks.list",
          "description": "Retrieves a list of subnetworks available to the specified\nproject.",
          "response": {
            "$ref": "SubnetworkList"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "format": "uint32",
              "default": "500",
              "type": "integer"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "views": {
              "location": "query",
              "enum": [
                "DEFAULT",
                "WITH_UTILIZATION"
              ],
              "type": "string",
              "enumDescriptions": [
                "",
                "Utilization data is included in the response."
              ],
              "description": "Defines the extra views returned back in the subnetwork resource.\nSupported values:\n   \n   - WITH_UTILIZATION: Utilization data is included in the\n   response.",
              "repeated": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET"
        },
        "aggregatedList": {
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/subnetworks",
          "response": {
            "$ref": "SubnetworkAggregatedList"
          },
          "path": "projects/{project}/aggregated/subnetworks",
          "description": "Retrieves an aggregated list of subnetworks.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "id": "compute.subnetworks.aggregatedList",
          "parameters": {
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "serviceProjectNumber": {
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "type": "string"
            },
            "views": {
              "enumDescriptions": [
                "",
                "Utilization data is included in the response."
              ],
              "enum": [
                "DEFAULT",
                "WITH_UTILIZATION"
              ],
              "location": "query",
              "description": "Defines the extra views returned back in the subnetwork resource.\nSupported values:\n   \n   - WITH_UTILIZATION: Utilization data is included in the\n   response.",
              "type": "string",
              "repeated": true
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setIamPolicy": {
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
          "id": "compute.subnetworks.setIamPolicy",
          "httpMethod": "POST",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the resource for this request."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the region for this request."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          }
        },
        "insert": {
          "httpMethod": "POST",
          "id": "compute.subnetworks.insert",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/subnetworks",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "Subnetwork"
          },
          "flatPath": "projects/{project}/regions/{region}/subnetworks",
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Creates a subnetwork in the specified project using the data\nincluded in the request."
        }
      }
    },
    "crossSiteNetworks": {
      "methods": {
        "get": {
          "description": "Returns the specified cross-site network in the given scope.",
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}",
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}",
          "response": {
            "$ref": "CrossSiteNetwork"
          },
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "crossSiteNetwork": {
              "description": "Name of the cross-site network to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "crossSiteNetwork"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.crossSiteNetworks.get"
        },
        "list": {
          "httpMethod": "GET",
          "parameters": {
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "minimum": "0",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "response": {
            "$ref": "CrossSiteNetworkList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/crossSiteNetworks",
          "flatPath": "projects/{project}/global/crossSiteNetworks",
          "id": "compute.crossSiteNetworks.list",
          "description": "Lists the cross-site networks for a project in the given scope.",
          "parameterOrder": [
            "project"
          ]
        },
        "delete": {
          "description": "Deletes the specified cross-site network in the given scope.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}",
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "crossSiteNetwork": {
              "location": "path",
              "required": true,
              "description": "Name of the cross-site network to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "crossSiteNetwork"
          ],
          "id": "compute.crossSiteNetworks.delete"
        },
        "patch": {
          "parameterOrder": [
            "project",
            "crossSiteNetwork"
          ],
          "request": {
            "$ref": "CrossSiteNetwork"
          },
          "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}",
          "description": "Updates the specified cross-site network with the data included in\nthe request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.crossSiteNetworks.patch",
          "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "parameters": {
            "crossSiteNetwork": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the cross-site network to update.",
              "type": "string"
            },
            "updateMask": {
              "type": "string",
              "format": "google-fieldmask",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "type": "string",
              "location": "query"
            },
            "validateOnly": {
              "type": "boolean",
              "location": "query",
              "description": "[Input Only] Validate the new configuration, but don't update it."
            }
          }
        },
        "insert": {
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "validateOnly": {
              "location": "query",
              "description": "[Input Only] Validate the new configuration, but don't create it.",
              "type": "boolean"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project"
          ],
          "description": "Creates a cross-site network in the specified project in the given scope\nusing the parameters that are included in the request.",
          "request": {
            "$ref": "CrossSiteNetwork"
          },
          "path": "projects/{project}/global/crossSiteNetworks",
          "id": "compute.crossSiteNetworks.insert",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/global/crossSiteNetworks",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        }
      }
    },
    "regionUrlMaps": {
      "methods": {
        "validate": {
          "parameterOrder": [
            "project",
            "region",
            "urlMap"
          ],
          "request": {
            "$ref": "RegionUrlMapsValidateRequest"
          },
          "response": {
            "$ref": "UrlMapsValidateResponse"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "urlMap": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the UrlMap resource to be validated as.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.regionUrlMaps.validate",
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
          "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
          "description": "Runs static validation for the UrlMap. In particular, the tests of the\nprovided UrlMap will be run. Calling this method does NOT create the\nUrlMap.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "insert": {
          "parameters": {
            "requestId": {
              "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/urlMaps",
          "id": "compute.regionUrlMaps.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "UrlMap"
          },
          "description": "Creates a UrlMap resource in the specified project using\nthe data included in the request.",
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/urlMaps"
        },
        "patch": {
          "id": "compute.regionUrlMaps.patch",
          "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
          "request": {
            "$ref": "UrlMap"
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Patches the specified UrlMap resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency.",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "urlMap": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the UrlMap resource to patch."
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "urlMap"
          ],
          "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}"
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "urlMap"
          ],
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "type": "string"
            },
            "urlMap": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the UrlMap resource to return."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "id": "compute.regionUrlMaps.get",
          "description": "Returns the specified UrlMap resource.",
          "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
          "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
          "response": {
            "$ref": "UrlMap"
          }
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/urlMaps",
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer",
              "minimum": "0",
              "format": "uint32"
            }
          },
          "response": {
            "$ref": "UrlMapList"
          },
          "path": "projects/{project}/regions/{region}/urlMaps",
          "description": "Retrieves the list of UrlMap resources available to the specified\nproject in the specified region.",
          "id": "compute.regionUrlMaps.list"
        },
        "delete": {
          "id": "compute.regionUrlMaps.delete",
          "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
          "description": "Deletes the specified UrlMap resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency.",
              "type": "string"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "urlMap": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the UrlMap resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "urlMap"
          ],
          "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}"
        },
        "update": {
          "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
          "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "UrlMap"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PUT",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "urlMap": {
              "type": "string",
              "description": "Name of the UrlMap resource to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "description": "Updates the specified UrlMap resource with the data included in the\nrequest.",
          "parameterOrder": [
            "project",
            "region",
            "urlMap"
          ],
          "id": "compute.regionUrlMaps.update"
        }
      }
    },
    "machineImages": {
      "methods": {
        "get": {
          "path": "projects/{project}/global/machineImages/{machineImage}",
          "id": "compute.machineImages.get",
          "parameterOrder": [
            "project",
            "machineImage"
          ],
          "description": "Returns the specified machine image.",
          "flatPath": "projects/{project}/global/machineImages/{machineImage}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "MachineImage"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "machineImage": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The name of the machine image.",
              "type": "string"
            }
          }
        },
        "list": {
          "id": "compute.machineImages.list",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/machineImages",
          "parameters": {
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "default": "500",
              "minimum": "0",
              "format": "uint32"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "MachineImageList"
          },
          "flatPath": "projects/{project}/global/machineImages",
          "description": "Retrieves a list of machine images that are contained within\nthe specified project."
        },
        "getIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "type": "integer",
              "description": "Requested IAM Policy version.",
              "location": "query"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy",
          "flatPath": "projects/{project}/global/machineImages/{resource}/getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "id": "compute.machineImages.getIamPolicy"
        },
        "setIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.machineImages.setIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "flatPath": "projects/{project}/global/machineImages/{resource}/setIamPolicy",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Policy"
          },
          "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy"
        },
        "insert": {
          "id": "compute.machineImages.insert",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "sourceInstance": {
              "description": "Required. Source instance that is used to create the machine image from.",
              "type": "string",
              "location": "query"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "description": "Creates a machine image in the specified project using the\ndata that is included in the request. If you are creating a new machine\nimage to update an existing instance, your new machine image should use the\nsame network or, if applicable, the same subnetwork as the original\ninstance.",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/global/machineImages",
          "request": {
            "$ref": "MachineImage"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/machineImages"
        },
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/global/machineImages/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "id": "compute.machineImages.testIamPermissions",
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ]
        },
        "delete": {
          "parameterOrder": [
            "project",
            "machineImage"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified machine image. Deleting a machine image is permanent\nand cannot be undone.",
          "flatPath": "projects/{project}/global/machineImages/{machineImage}",
          "path": "projects/{project}/global/machineImages/{machineImage}",
          "parameters": {
            "machineImage": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "The name of the machine image to delete."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "id": "compute.machineImages.delete",
          "httpMethod": "DELETE"
        },
        "setLabels": {
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/machineImages/{resource}/setLabels",
          "description": "Sets the labels on a machine image. To learn more about labels, read theLabeling\nResources documentation.",
          "path": "projects/{project}/global/machineImages/{resource}/setLabels",
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "id": "compute.machineImages.setLabels",
          "parameterOrder": [
            "project",
            "resource"
          ]
        }
      }
    },
    "globalVmExtensionPolicies": {
      "methods": {
        "insert": {
          "flatPath": "projects/{project}/global/vmExtensionPolicies",
          "path": "projects/{project}/global/vmExtensionPolicies",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.globalVmExtensionPolicies.insert",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "description": "Creates a new project level GlobalVmExtensionPolicy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "GlobalVmExtensionPolicy"
          }
        },
        "list": {
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "description": "Lists global VM extension policies.",
          "response": {
            "$ref": "GlobalVmExtensionPolicyList"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "type": "integer",
              "default": "500"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "id": "compute.globalVmExtensionPolicies.list",
          "flatPath": "projects/{project}/global/vmExtensionPolicies",
          "path": "projects/{project}/global/vmExtensionPolicies"
        },
        "get": {
          "flatPath": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}",
          "response": {
            "$ref": "GlobalVmExtensionPolicy"
          },
          "id": "compute.globalVmExtensionPolicies.get",
          "path": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "globalVmExtensionPolicy"
          ],
          "description": "Gets details of a global VM extension policy.",
          "httpMethod": "GET",
          "parameters": {
            "globalVmExtensionPolicy": {
              "description": "Name of the GlobalVmExtensionPolicy resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          }
        },
        "aggregatedList": {
          "description": "Retrieves the list of all VM Extension Policy resources\navailable to the specified project.\n\nTo prevent failure, it's recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/vmExtensionPolicies",
          "id": "compute.globalVmExtensionPolicies.aggregatedList",
          "path": "projects/{project}/aggregated/vmExtensionPolicies",
          "response": {
            "$ref": "VmExtensionPolicyAggregatedListResponse"
          },
          "httpMethod": "GET",
          "parameters": {
            "serviceProjectNumber": {
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "includeAllScopes": {
              "location": "query",
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Name of the project scoping this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "update": {
          "id": "compute.globalVmExtensionPolicies.update",
          "httpMethod": "PATCH",
          "parameters": {
            "globalVmExtensionPolicy": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the global VM extension policy to update."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "globalVmExtensionPolicy"
          ],
          "flatPath": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}",
          "request": {
            "$ref": "GlobalVmExtensionPolicy"
          },
          "description": "Updates a global VM extension policy.",
          "path": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}",
          "response": {
            "$ref": "Operation"
          }
        },
        "delete": {
          "httpMethod": "POST",
          "path": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}/delete",
          "flatPath": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}/delete",
          "parameters": {
            "globalVmExtensionPolicy": {
              "description": "Name of the global VM extension policy to purge scoped resources for.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "request": {
            "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutInput"
          },
          "id": "compute.globalVmExtensionPolicies.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "globalVmExtensionPolicy"
          ],
          "description": "Purge scoped resources (zonal policies) from a global VM extension\npolicy, and then delete the global VM extension policy. Purge of the scoped\nresources is a pre-condition of the global VM extension policy deletion.\nThe deletion of the global VM extension policy happens after the purge\nrollout is done, so it's not a part of the LRO. It's an automatic process\nthat triggers in the backend."
        }
      }
    },
    "regionHealthAggregationPolicies": {
      "methods": {
        "aggregatedList": {
          "parameters": {
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "location": "query",
              "type": "string"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Name of the project scoping this request."
            }
          },
          "path": "projects/{project}/aggregated/healthAggregationPolicies",
          "httpMethod": "GET",
          "description": "Retrieves the list of all HealthAggregationPolicy resources,\nregional and global, available to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "HealthAggregationPolicyAggregatedList"
          },
          "id": "compute.regionHealthAggregationPolicies.aggregatedList",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/healthAggregationPolicies"
        },
        "insert": {
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            }
          },
          "httpMethod": "POST",
          "id": "compute.regionHealthAggregationPolicies.insert",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/healthAggregationPolicies",
          "request": {
            "$ref": "HealthAggregationPolicy"
          },
          "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Create a HealthAggregationPolicy in the specified project in the given\nregion using the parameters that are included in the request."
        },
        "get": {
          "description": "Returns the specified HealthAggregationPolicy resource in the given region.",
          "response": {
            "$ref": "HealthAggregationPolicy"
          },
          "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}",
          "id": "compute.regionHealthAggregationPolicies.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "healthAggregationPolicy"
          ],
          "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}",
          "parameters": {
            "healthAggregationPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the HealthAggregationPolicy resource to return."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "GET"
        },
        "testIamPermissions": {
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request.",
              "type": "string"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "id": "compute.regionHealthAggregationPolicies.testIamPermissions"
        },
        "list": {
          "httpMethod": "GET",
          "id": "compute.regionHealthAggregationPolicies.list",
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "location": "query",
              "minimum": "0"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies",
          "parameterOrder": [
            "project",
            "region"
          ],
          "description": "Lists the HealthAggregationPolicies for a project in the given region.",
          "response": {
            "$ref": "HealthAggregationPolicyList"
          },
          "path": "projects/{project}/regions/{region}/healthAggregationPolicies"
        },
        "patch": {
          "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}",
          "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}",
          "id": "compute.regionHealthAggregationPolicies.patch",
          "request": {
            "$ref": "HealthAggregationPolicy"
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "healthAggregationPolicy": {
              "description": "Name of the HealthAggregationPolicy to update. The name\nmust be 1-63 characters long, and comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "healthAggregationPolicy"
          ],
          "description": "Updates the specified regional HealthAggregationPolicy\nresource with the data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules."
        },
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "healthAggregationPolicy": {
              "location": "path",
              "required": true,
              "description": "Name of the HealthAggregationPolicy resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "healthAggregationPolicy"
          ],
          "id": "compute.regionHealthAggregationPolicies.delete",
          "description": "Deletes the specified HealthAggregationPolicy in the given region.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}",
          "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}"
        }
      }
    },
    "interconnectRemoteLocations": {
      "methods": {
        "get": {
          "response": {
            "$ref": "InterconnectRemoteLocation"
          },
          "parameters": {
            "interconnectRemoteLocation": {
              "description": "Name of the interconnect remote location to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}",
          "description": "Returns the details for the specified interconnect remote location. Gets a\nlist of available interconnect remote locations by making alist() request.",
          "path": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}",
          "id": "compute.interconnectRemoteLocations.get",
          "parameterOrder": [
            "project",
            "interconnectRemoteLocation"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "path": "projects/{project}/global/interconnectRemoteLocations",
          "description": "Retrieves the list of interconnect remote locations available to the\nspecified project.",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "minimum": "0",
              "type": "integer"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "InterconnectRemoteLocationList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/interconnectRemoteLocations",
          "id": "compute.interconnectRemoteLocations.list"
        }
      }
    },
    "regionSecurityPolicies": {
      "methods": {
        "get": {
          "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the security policy to get."
            }
          },
          "response": {
            "$ref": "SecurityPolicy"
          },
          "description": "List all of the ordered rules present in a single specified policy.",
          "parameterOrder": [
            "project",
            "region",
            "securityPolicy"
          ],
          "id": "compute.regionSecurityPolicies.get",
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setLabels": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{resource}/setLabels",
          "id": "compute.regionSecurityPolicies.setLabels",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "description": "Sets the labels on a security policy. To learn more about labels,\nread the Labeling Resources\ndocumentation.",
          "path": "projects/{project}/regions/{region}/securityPolicies/{resource}/setLabels",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The region for this request."
            }
          },
          "httpMethod": "POST"
        },
        "getRule": {
          "httpMethod": "GET",
          "parameters": {
            "priority": {
              "location": "query",
              "description": "The priority of the rule to get from the security policy.",
              "format": "int32",
              "type": "integer"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "securityPolicy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the security policy to which the queried rule belongs.",
              "type": "string"
            }
          },
          "id": "compute.regionSecurityPolicies.getRule",
          "description": "Gets a rule at the specified priority.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "securityPolicy"
          ],
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule",
          "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule",
          "response": {
            "$ref": "SecurityPolicyRule"
          }
        },
        "list": {
          "path": "projects/{project}/regions/{region}/securityPolicies",
          "id": "compute.regionSecurityPolicies.list",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "List all the policies that have been configured for the specified project\nand region.",
          "response": {
            "$ref": "SecurityPolicyList"
          },
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/securityPolicies"
        },
        "removeRule": {
          "id": "compute.regionSecurityPolicies.removeRule",
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "securityPolicy"
          ],
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "securityPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the security policy to update."
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "priority": {
              "location": "query",
              "type": "integer",
              "description": "The priority of the rule to remove from the security policy.",
              "format": "int32"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes a rule at the specified priority."
        },
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "securityPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the security policy to update."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "updateMask": {
              "type": "string",
              "format": "google-fieldmask",
              "description": "Indicates fields to be cleared as part of this request.",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "PATCH",
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}",
          "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}",
          "id": "compute.regionSecurityPolicies.patch",
          "request": {
            "$ref": "SecurityPolicy"
          },
          "description": "Patches the specified policy with the data included in the request. To\nclear fields in the policy, leave the fields empty and specify them in the\nupdateMask. This cannot be used to be update the rules in the policy.\nPlease use the per rule methods like addRule, patchRule, and removeRule\ninstead.",
          "parameterOrder": [
            "project",
            "region",
            "securityPolicy"
          ]
        },
        "addRule": {
          "parameters": {
            "validateOnly": {
              "type": "boolean",
              "location": "query",
              "description": "If true, the request will not be committed."
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "securityPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the security policy to update.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Inserts a rule into a security policy.",
          "request": {
            "$ref": "SecurityPolicyRule"
          },
          "id": "compute.regionSecurityPolicies.addRule",
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule",
          "parameterOrder": [
            "project",
            "region",
            "securityPolicy"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule",
          "response": {
            "$ref": "Operation"
          }
        },
        "insert": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "validateOnly": {
              "location": "query",
              "type": "boolean",
              "description": "If true, the request will not be committed."
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "description": "Creates a new policy in the specified project using the data included in\nthe request.",
          "id": "compute.regionSecurityPolicies.insert",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SecurityPolicy"
          },
          "flatPath": "projects/{project}/regions/{region}/securityPolicies",
          "path": "projects/{project}/regions/{region}/securityPolicies"
        },
        "delete": {
          "parameterOrder": [
            "project",
            "region",
            "securityPolicy"
          ],
          "description": "Deletes the specified policy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}",
          "httpMethod": "DELETE",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            },
            "securityPolicy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the security policy to delete."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}",
          "id": "compute.regionSecurityPolicies.delete"
        },
        "patchRule": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Patches a rule at the specified priority. To clear fields in the rule,\nleave the fields empty and specify them in the updateMask.",
          "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule",
          "id": "compute.regionSecurityPolicies.patchRule",
          "parameters": {
            "securityPolicy": {
              "description": "Name of the security policy to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "type": "string",
              "description": "Indicates fields to be cleared as part of this request.",
              "format": "google-fieldmask",
              "location": "query"
            },
            "priority": {
              "type": "integer",
              "location": "query",
              "description": "The priority of the rule to patch.",
              "format": "int32"
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "validateOnly": {
              "location": "query",
              "description": "If true, the request will not be committed.",
              "type": "boolean"
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SecurityPolicyRule"
          },
          "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule",
          "parameterOrder": [
            "project",
            "region",
            "securityPolicy"
          ]
        }
      }
    },
    "regionZones": {
      "methods": {
        "list": {
          "id": "compute.regionZones.list",
          "description": "Retrieves the list of Zone resources under the specific region available to\nthe specified project.",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Region for this request.",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "format": "uint32"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/zones",
          "path": "projects/{project}/regions/{region}/zones",
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "ZoneList"
          }
        }
      }
    },
    "imageViews": {
      "methods": {
        "list": {
          "id": "compute.imageViews.list",
          "path": "projects/{project}/regions/{region}/imageViews",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/imageViews",
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "type": "string",
              "description": "Required. Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "minimum": "0",
              "type": "integer",
              "location": "query",
              "format": "uint32"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Required. Project ID for this request.",
              "location": "path",
              "required": true
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "response": {
            "$ref": "ImageViewsListResponse"
          },
          "description": "Returns a list of global ImageView resources, with a regional\ncontext."
        },
        "get": {
          "id": "compute.imageViews.get",
          "response": {
            "$ref": "ImageView"
          },
          "flatPath": "projects/{project}/regions/{region}/imageViews/{resourceId}",
          "parameterOrder": [
            "project",
            "region",
            "resourceId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified global ImageView resource, with a regional\ncontext.",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Required. Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resourceId": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the image resource to return."
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Required. Name of the region for this request."
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/imageViews/{resourceId}"
        }
      }
    },
    "regionTargetTcpProxies": {
      "methods": {
        "insert": {
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "description": "Creates a TargetTcpProxy resource in the specified project and region using\nthe data included in the request.",
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/targetTcpProxies",
          "flatPath": "projects/{project}/regions/{region}/targetTcpProxies",
          "id": "compute.regionTargetTcpProxies.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "TargetTcpProxy"
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "id": "compute.regionTargetTcpProxies.get",
          "httpMethod": "GET",
          "description": "Returns the specified TargetTcpProxy resource.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "targetTcpProxy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetTcpProxy resource to return.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}",
          "response": {
            "$ref": "TargetTcpProxy"
          },
          "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}",
          "parameterOrder": [
            "project",
            "region",
            "targetTcpProxy"
          ]
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}",
          "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}",
          "id": "compute.regionTargetTcpProxies.delete",
          "description": "Deletes the specified TargetTcpProxy resource.",
          "parameterOrder": [
            "project",
            "region",
            "targetTcpProxy"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "targetTcpProxy": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetTcpProxy resource to delete.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "DELETE"
        },
        "list": {
          "flatPath": "projects/{project}/regions/{region}/targetTcpProxies",
          "id": "compute.regionTargetTcpProxies.list",
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "TargetTcpProxyList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/targetTcpProxies",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "default": "500",
              "type": "integer",
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            }
          },
          "description": "Retrieves a list of TargetTcpProxy resources\navailable to the specified project in a given region."
        }
      }
    },
    "regionBackendServices": {
      "methods": {
        "getHealth": {
          "request": {
            "$ref": "ResourceGroupReference"
          },
          "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
          "id": "compute.regionBackendServices.getHealth",
          "description": "Gets the most recent health check results for this\nregional BackendService.",
          "response": {
            "$ref": "BackendServiceGroupHealth"
          },
          "parameterOrder": [
            "project",
            "region",
            "backendService"
          ],
          "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "backendService": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the BackendService resource for which to get health."
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            }
          }
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "id": "compute.regionBackendServices.get",
          "description": "Returns the specified regional BackendService resource.",
          "parameterOrder": [
            "project",
            "region",
            "backendService"
          ],
          "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "response": {
            "$ref": "BackendService"
          },
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "backendService": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendService resource to return."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          }
        },
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Updates the specified regional BackendService resource with the data\nincluded in the request. For more information, see \nUnderstanding backend services This method\nsupports PATCH semantics and uses the JSON merge\npatch format and processing rules.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "region",
            "backendService"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "backendService": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendService resource to patch."
            }
          },
          "id": "compute.regionBackendServices.patch",
          "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "request": {
            "$ref": "BackendService"
          }
        },
        "listUsable": {
          "response": {
            "$ref": "BackendServiceListUsable"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable",
          "path": "projects/{project}/regions/{region}/backendServices/listUsable",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "region": {
              "description": "Name of the region scoping this request.\nIt must be a string that meets the requirements in RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer",
              "minimum": "0"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            }
          },
          "id": "compute.regionBackendServices.listUsable",
          "description": "Retrieves a list of all usable backend services for Application Load\nBalancers and Proxy Network Load Balancers in the specified project in the\ngiven region. Backend services for external and internal passthrough\nNetwork Load Balancers are not included in the response.",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "response": {
            "$ref": "BackendServiceList"
          },
          "path": "projects/{project}/regions/{region}/backendServices",
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/backendServices",
          "description": "Retrieves the list of regional BackendService resources available to the\nspecified project in the given region.",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "format": "uint32",
              "type": "integer"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionBackendServices.list"
        },
        "setIamPolicy": {
          "path": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Policy"
          },
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "id": "compute.regionBackendServices.setIamPolicy"
        },
        "insert": {
          "id": "compute.regionBackendServices.insert",
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/backendServices",
          "parameterOrder": [
            "project",
            "region"
          ],
          "request": {
            "$ref": "BackendService"
          },
          "description": "Creates a regional BackendService resource in the specified project using\nthe data included in the request. For more information, see\nBackend services overview.",
          "path": "projects/{project}/regions/{region}/backendServices",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "setSecurityPolicy": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionBackendServices.setSecurityPolicy",
          "request": {
            "$ref": "SecurityPolicyReference"
          },
          "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy",
          "parameters": {
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "backendService": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the BackendService resource to which the security policy should be\nset. The name should conform to RFC1035."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "description": "Sets the Google Cloud Armor security policy for the specified backend\nservice. For more information, seeGoogle\nCloud Armor Overview",
          "parameterOrder": [
            "project",
            "region",
            "backendService"
          ],
          "path": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy"
        },
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "backendService": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendService resource to delete.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "id": "compute.regionBackendServices.delete",
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "region",
            "backendService"
          ],
          "description": "Deletes the specified regional BackendService resource."
        },
        "update": {
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "backendService": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the BackendService resource to update."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "request": {
            "$ref": "BackendService"
          },
          "httpMethod": "PUT",
          "response": {
            "$ref": "Operation"
          },
          "description": "Updates the specified regional BackendService resource with the data\nincluded in the request. For more information,\nsee \nBackend services overview.",
          "id": "compute.regionBackendServices.update",
          "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region",
            "backendService"
          ]
        },
        "getIamPolicy": {
          "response": {
            "$ref": "Policy"
          },
          "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "id": "compute.regionBackendServices.getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the region for this request."
            },
            "optionsRequestedPolicyVersion": {
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            }
          },
          "httpMethod": "GET"
        },
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "path": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.regionBackendServices.testIamPermissions",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          }
        }
      }
    },
    "firewalls": {
      "methods": {
        "testIamPermissions": {
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/firewalls/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "projects/{project}/global/firewalls/{resource}/testIamPermissions",
          "id": "compute.firewalls.testIamPermissions"
        },
        "list": {
          "parameterOrder": [
            "project"
          ],
          "description": "Retrieves the list of firewall rules available to the specified\nproject.",
          "id": "compute.firewalls.list",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/firewalls",
          "flatPath": "projects/{project}/global/firewalls",
          "response": {
            "$ref": "FirewallList"
          },
          "httpMethod": "GET",
          "parameters": {
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "location": "query"
            }
          }
        },
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/firewalls/{firewall}",
          "parameterOrder": [
            "project",
            "firewall"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.firewalls.delete",
          "description": "Deletes the specified firewall.",
          "flatPath": "projects/{project}/global/firewalls/{firewall}",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "firewall": {
              "description": "Name of the firewall rule to delete.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "DELETE"
        },
        "update": {
          "parameterOrder": [
            "project",
            "firewall"
          ],
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "Firewall"
          },
          "flatPath": "projects/{project}/global/firewalls/{firewall}",
          "id": "compute.firewalls.update",
          "description": "Updates the specified firewall rule with the data included in the\nrequest.\nNote that all fields will be updated if using PUT, even fields that are not\nspecified. To update individual fields, please use PATCH instead.",
          "parameters": {
            "firewall": {
              "description": "Name of the firewall rule to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "PUT",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/firewalls/{firewall}"
        },
        "get": {
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "firewall": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the firewall rule to return."
            }
          },
          "path": "projects/{project}/global/firewalls/{firewall}",
          "parameterOrder": [
            "project",
            "firewall"
          ],
          "description": "Returns the specified firewall.",
          "flatPath": "projects/{project}/global/firewalls/{firewall}",
          "id": "compute.firewalls.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Firewall"
          }
        },
        "patch": {
          "path": "projects/{project}/global/firewalls/{firewall}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "firewall"
          ],
          "request": {
            "$ref": "Firewall"
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Updates the specified firewall rule with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "flatPath": "projects/{project}/global/firewalls/{firewall}",
          "parameters": {
            "firewall": {
              "type": "string",
              "description": "Name of the firewall rule to patch.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "id": "compute.firewalls.patch",
          "httpMethod": "PATCH"
        },
        "insert": {
          "id": "compute.firewalls.insert",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "description": "Creates a firewall rule in the specified project using the data\nincluded in the request.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/firewalls",
          "request": {
            "$ref": "Firewall"
          },
          "flatPath": "projects/{project}/global/firewalls",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        }
      }
    },
    "publicDelegatedPrefixes": {
      "methods": {
        "withdraw": {
          "parameterOrder": [
            "project",
            "region",
            "publicDelegatedPrefix"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.publicDelegatedPrefixes.withdraw",
          "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "publicDelegatedPrefix": {
              "location": "path",
              "required": true,
              "description": "The name of the public delegated prefix. It should comply with RFC1035.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "The name of theregion where\nthe public delegated prefix is located. It should comply with RFC1035.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw",
          "description": "Withdraws the specified PublicDelegatedPrefix in the given region."
        },
        "get": {
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "publicDelegatedPrefix": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the PublicDelegatedPrefix resource to return."
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region of this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.publicDelegatedPrefixes.get",
          "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "parameterOrder": [
            "project",
            "region",
            "publicDelegatedPrefix"
          ],
          "response": {
            "$ref": "PublicDelegatedPrefix"
          }
        },
        "delete": {
          "id": "compute.publicDelegatedPrefixes.delete",
          "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "parameterOrder": [
            "project",
            "region",
            "publicDelegatedPrefix"
          ],
          "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "publicDelegatedPrefix": {
              "description": "Name of the PublicDelegatedPrefix resource to delete.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region of this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "DELETE",
          "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}"
        },
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes",
          "path": "projects/{project}/aggregated/publicDelegatedPrefixes",
          "response": {
            "$ref": "PublicDelegatedPrefixAggregatedList"
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "id": "compute.publicDelegatedPrefixes.aggregatedList",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "location": "query",
              "type": "string"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the project scoping this request."
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "location": "query",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Lists all PublicDelegatedPrefix resources owned by the specific project\nacross all scopes.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`."
        },
        "patch": {
          "parameterOrder": [
            "project",
            "region",
            "publicDelegatedPrefix"
          ],
          "id": "compute.publicDelegatedPrefixes.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Patches the specified PublicDelegatedPrefix resource with the data included\nin the request. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "request": {
            "$ref": "PublicDelegatedPrefix"
          },
          "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
          "parameters": {
            "publicDelegatedPrefix": {
              "description": "Name of the PublicDelegatedPrefix resource to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "description": "Name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}"
        },
        "list": {
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "minimum": "0",
              "format": "uint32",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "region": {
              "description": "Name of the region of this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
          "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
          "response": {
            "$ref": "PublicDelegatedPrefixList"
          },
          "id": "compute.publicDelegatedPrefixes.list",
          "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "insert": {
          "httpMethod": "POST",
          "description": "Creates a PublicDelegatedPrefix in the specified project in the given\nregion using the parameters that are included in the request.",
          "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "type": "string",
              "description": "Name of the region of this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "id": "compute.publicDelegatedPrefixes.insert",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "PublicDelegatedPrefix"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes"
        },
        "announce": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "publicDelegatedPrefix": {
              "type": "string",
              "description": "The name of the public delegated prefix. It should comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of theregion where\nthe public delegated prefix is located. It should comply with RFC1035."
            }
          },
          "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.publicDelegatedPrefixes.announce",
          "description": "Announces the specified PublicDelegatedPrefix in the given region.",
          "parameterOrder": [
            "project",
            "region",
            "publicDelegatedPrefix"
          ]
        }
      }
    },
    "zoneVmExtensionPolicies": {
      "methods": {
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "VmExtensionPolicy"
          },
          "id": "compute.zoneVmExtensionPolicies.get",
          "description": "Retrieves details of a specific zone VM extension policy within a project.",
          "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}",
          "path": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "vmExtensionPolicy": {
              "description": "Name of the VM extension policy resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "vmExtensionPolicy"
          ],
          "httpMethod": "GET"
        },
        "update": {
          "path": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}",
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone for this request."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "vmExtensionPolicy": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the zone VM extension policy to update."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}",
          "description": "Modifies an existing zone VM extension policy within a project.",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.zoneVmExtensionPolicies.update",
          "parameterOrder": [
            "project",
            "zone",
            "vmExtensionPolicy"
          ],
          "request": {
            "$ref": "VmExtensionPolicy"
          }
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.zoneVmExtensionPolicies.delete",
          "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "type": "string",
              "description": "Name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "vmExtensionPolicy": {
              "description": "Name of the zone VM extension policy to delete.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "DELETE",
          "path": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "vmExtensionPolicy"
          ],
          "description": "Deletes a specified zone VM extension policy within a project."
        },
        "insert": {
          "description": "Creates a new zone-level VM extension policy within a project.",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "path": "projects/{project}/zones/{zone}/vmExtensionPolicies",
          "id": "compute.zoneVmExtensionPolicies.insert",
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "VmExtensionPolicy"
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "list": {
          "path": "projects/{project}/zones/{zone}/vmExtensionPolicies",
          "parameters": {
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer",
              "minimum": "0"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "response": {
            "$ref": "VmExtensionPolicyList"
          },
          "id": "compute.zoneVmExtensionPolicies.list",
          "description": "Lists all VM extension policies within a specific zone for a project.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies"
        }
      }
    },
    "firewallPolicies": {
      "methods": {
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "path": "locations/global/firewallPolicies/{firewallPolicy}",
          "id": "compute.firewallPolicies.delete",
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Deletes the specified policy.",
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "description": "Name of the firewall policy to delete.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "firewallPolicy"
          ],
          "httpMethod": "DELETE"
        },
        "list": {
          "flatPath": "locations/global/firewallPolicies",
          "id": "compute.firewallPolicies.list",
          "httpMethod": "GET",
          "path": "locations/global/firewallPolicies",
          "parameters": {
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "type": "integer",
              "default": "500"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "parentId": {
              "location": "query",
              "type": "string",
              "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\"\nif the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the\nparent is an organization."
            }
          },
          "response": {
            "$ref": "FirewallPolicyList"
          },
          "description": "Lists all the policies that have been configured for the specified\nfolder or organization.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "testIamPermissions": {
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameterOrder": [
            "resource"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "locations/global/firewallPolicies/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "locations/global/firewallPolicies/{resource}/testIamPermissions",
          "id": "compute.firewallPolicies.testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST"
        },
        "patchRule": {
          "description": "Patches a rule of the specified priority.",
          "parameterOrder": [
            "firewallPolicy"
          ],
          "id": "compute.firewallPolicies.patchRule",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "FirewallPolicyRule"
          },
          "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
          "parameters": {
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to update.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "type": "string"
            },
            "priority": {
              "format": "int32",
              "description": "The priority of the rule to patch.",
              "location": "query",
              "type": "integer"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST"
        },
        "insert": {
          "flatPath": "locations/global/firewallPolicies",
          "request": {
            "$ref": "FirewallPolicy"
          },
          "description": "Creates a new policy in the specified project using the data included in\nthe request.",
          "id": "compute.firewallPolicies.insert",
          "path": "locations/global/firewallPolicies",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "parentId": {
              "type": "string",
              "location": "query",
              "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\"\nif the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the\nparent is an organization."
            }
          }
        },
        "getRule": {
          "id": "compute.firewallPolicies.getRule",
          "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
          "description": "Gets a rule of the specified priority.",
          "parameterOrder": [
            "firewallPolicy"
          ],
          "response": {
            "$ref": "FirewallPolicyRule"
          },
          "parameters": {
            "firewallPolicy": {
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "description": "Name of the firewall policy to which the queried rule belongs.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "priority": {
              "format": "int32",
              "type": "integer",
              "location": "query",
              "description": "The priority of the rule to get from the firewall policy."
            }
          },
          "httpMethod": "GET",
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "cloneRules": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "firewallPolicy"
          ],
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
          "description": "Copies rules to the specified firewall policy.",
          "id": "compute.firewallPolicies.cloneRules",
          "parameters": {
            "sourceFirewallPolicy": {
              "type": "string",
              "location": "query",
              "description": "The firewall policy from which to copy rules."
            },
            "firewallPolicy": {
              "description": "Name of the firewall policy to update.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules"
        },
        "listAssociations": {
          "description": "Lists associations of a specified target, i.e., organization or folder.",
          "id": "compute.firewallPolicies.listAssociations",
          "flatPath": "locations/global/firewallPolicies/listAssociations",
          "path": "locations/global/firewallPolicies/listAssociations",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "includeInheritedPolicies": {
              "location": "query",
              "description": "If set to \"true\", the response will contain a list of all associations for\nthe containing folders and the containing organization of the target. The\nparameter has no effect if the target is an organization.",
              "type": "boolean"
            },
            "targetResource": {
              "type": "string",
              "location": "query",
              "description": "The target resource to list associations. It is an organization, or a\nfolder."
            }
          },
          "response": {
            "$ref": "FirewallPoliciesListAssociationsResponse"
          }
        },
        "addAssociation": {
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "FirewallPolicyAssociation"
          },
          "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
          "description": "Inserts an association for the specified firewall policy.",
          "parameterOrder": [
            "firewallPolicy"
          ],
          "id": "compute.firewallPolicies.addAssociation",
          "parameters": {
            "replaceExistingAssociation": {
              "description": "Indicates whether or not to replace it if an association of the attachment\nalready exists. This is false by default, in which case an error will be\nreturned if an association already exists.",
              "location": "query",
              "type": "boolean"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "firewallPolicy": {
              "type": "string",
              "description": "Name of the firewall policy to update.",
              "location": "path",
              "required": true,
              "pattern": "(firewallPolicies/)?[0-9]{0,20}"
            }
          },
          "httpMethod": "POST"
        },
        "move": {
          "id": "compute.firewallPolicies.move",
          "path": "locations/global/firewallPolicies/{firewallPolicy}/move",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/move",
          "description": "Moves the specified firewall policy.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "firewallPolicy"
          ],
          "parameters": {
            "parentId": {
              "location": "query",
              "type": "string",
              "description": "The new parent of the firewall policy. The ID can be either be\n\"folders/[FOLDER_ID]\" if the parent is a folder or\n\"organizations/[ORGANIZATION_ID]\" if the parent is an organization."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "firewallPolicy": {
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "type": "string",
              "description": "Name of the firewall policy to update.",
              "location": "path",
              "required": true
            }
          }
        },
        "setIamPolicy": {
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.firewallPolicies.setIamPolicy",
          "path": "locations/global/firewallPolicies/{resource}/setIamPolicy",
          "parameterOrder": [
            "resource"
          ],
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "response": {
            "$ref": "Policy"
          },
          "request": {
            "$ref": "GlobalOrganizationSetPolicyRequest"
          },
          "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy"
        },
        "removeRule": {
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "description": "Name of the firewall policy to update.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "location": "path",
              "required": true
            },
            "priority": {
              "description": "The priority of the rule to remove from the firewall policy.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "firewallPolicy"
          ],
          "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
          "description": "Deletes a rule of the specified priority.",
          "httpMethod": "POST",
          "id": "compute.firewallPolicies.removeRule",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule"
        },
        "getAssociation": {
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
          "parameterOrder": [
            "firewallPolicy"
          ],
          "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
          "id": "compute.firewallPolicies.getAssociation",
          "response": {
            "$ref": "FirewallPolicyAssociation"
          },
          "description": "Gets an association with the specified name.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "name": {
              "location": "query",
              "type": "string",
              "description": "The name of the association to get from the firewall policy."
            },
            "firewallPolicy": {
              "type": "string",
              "description": "Name of the firewall policy to which the queried rule belongs.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "location": "path",
              "required": true
            }
          }
        },
        "get": {
          "description": "Returns the specified firewall policy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "firewallPolicy"
          ],
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
          "httpMethod": "GET",
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "description": "Name of the firewall policy to get.",
              "location": "path",
              "required": true,
              "pattern": "(firewallPolicies/)?[0-9]{0,20}"
            }
          },
          "id": "compute.firewallPolicies.get",
          "path": "locations/global/firewallPolicies/{firewallPolicy}",
          "response": {
            "$ref": "FirewallPolicy"
          }
        },
        "addRule": {
          "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
          "description": "Inserts a rule into a firewall policy.",
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "location": "path",
              "required": true,
              "description": "Name of the firewall policy to update."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "firewallPolicy"
          ],
          "id": "compute.firewallPolicies.addRule",
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
          "request": {
            "$ref": "FirewallPolicyRule"
          }
        },
        "getIamPolicy": {
          "parameterOrder": [
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.firewallPolicies.getIamPolicy",
          "httpMethod": "GET",
          "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy",
          "parameters": {
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}"
            },
            "optionsRequestedPolicyVersion": {
              "location": "query",
              "description": "Requested IAM Policy version.",
              "format": "int32",
              "type": "integer"
            }
          },
          "path": "locations/global/firewallPolicies/{resource}/getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "response": {
            "$ref": "Policy"
          }
        },
        "removeAssociation": {
          "parameters": {
            "firewallPolicy": {
              "type": "string",
              "description": "Name of the firewall policy to update.",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "name": {
              "description": "Name for the attachment that will be removed.",
              "type": "string",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
          "parameterOrder": [
            "firewallPolicy"
          ],
          "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
          "description": "Removes an association for the specified firewall policy.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.firewallPolicies.removeAssociation"
        },
        "patch": {
          "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
          "request": {
            "$ref": "FirewallPolicy"
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PATCH",
          "parameters": {
            "firewallPolicy": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(firewallPolicies/)?[0-9]{0,20}",
              "description": "Name of the firewall policy to update."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "path": "locations/global/firewallPolicies/{firewallPolicy}",
          "parameterOrder": [
            "firewallPolicy"
          ],
          "description": "Patches the specified policy with the data included in the request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.firewallPolicies.patch"
        }
      }
    },
    "interconnects": {
      "methods": {
        "list": {
          "flatPath": "projects/{project}/global/interconnects",
          "path": "projects/{project}/global/interconnects",
          "response": {
            "$ref": "InterconnectList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.interconnects.list",
          "description": "Retrieves the list of Interconnects available to the specified project.",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "location": "query",
              "default": "500"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            }
          },
          "parameterOrder": [
            "project"
          ]
        },
        "delete": {
          "path": "projects/{project}/global/interconnects/{interconnect}",
          "parameterOrder": [
            "project",
            "interconnect"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "interconnect": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the interconnect to delete."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "httpMethod": "DELETE",
          "id": "compute.interconnects.delete",
          "flatPath": "projects/{project}/global/interconnects/{interconnect}",
          "description": "Deletes the specified Interconnect.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "setLabels": {
          "description": "Sets the labels on an Interconnect. To learn more about labels,\nread the Labeling\nResources documentation.",
          "id": "compute.interconnects.setLabels",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/interconnects/{resource}/setLabels",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "path": "projects/{project}/global/interconnects/{resource}/setLabels"
        },
        "getDiagnostics": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "InterconnectsGetDiagnosticsResponse"
          },
          "parameterOrder": [
            "project",
            "interconnect"
          ],
          "parameters": {
            "interconnect": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the interconnect resource to query."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
          "description": "Returns the interconnectDiagnostics for the specified\nInterconnect.\n\nIn the event of a\nglobal outage, do not use this API to make decisions about where to\nredirect your network traffic.\n\nUnlike a VLAN attachment, which is regional, a Cloud Interconnect\nconnection is a global resource. A global outage can prevent this\nAPI from functioning properly.",
          "id": "compute.interconnects.getDiagnostics",
          "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics"
        },
        "get": {
          "description": "Returns the specified Interconnect. Get a list of available Interconnects\nby making a list() request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "interconnect"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "Interconnect"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "interconnect": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the interconnect to return."
            }
          },
          "path": "projects/{project}/global/interconnects/{interconnect}",
          "flatPath": "projects/{project}/global/interconnects/{interconnect}",
          "id": "compute.interconnects.get"
        },
        "patch": {
          "path": "projects/{project}/global/interconnects/{interconnect}",
          "parameterOrder": [
            "project",
            "interconnect"
          ],
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/interconnects/{interconnect}",
          "request": {
            "$ref": "Interconnect"
          },
          "httpMethod": "PATCH",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "interconnect": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the interconnect to update.",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.interconnects.patch",
          "description": "Updates the specified Interconnect with the data included in the request.\nThis method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules."
        },
        "getMacsecConfig": {
          "response": {
            "$ref": "InterconnectsGetMacsecConfigResponse"
          },
          "path": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig",
          "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig",
          "parameterOrder": [
            "project",
            "interconnect"
          ],
          "id": "compute.interconnects.getMacsecConfig",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "interconnect": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the interconnect resource to query.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the interconnectMacsecConfig for the specified\nInterconnect."
        },
        "insert": {
          "httpMethod": "POST",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/global/interconnects",
          "request": {
            "$ref": "Interconnect"
          },
          "id": "compute.interconnects.insert",
          "path": "projects/{project}/global/interconnects",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Creates an Interconnect in the specified project using\nthe data included in the request."
        }
      }
    },
    "managedRulesets": {
      "methods": {
        "get": {
          "parameterOrder": [
            "project",
            "managedRuleset"
          ],
          "httpMethod": "GET",
          "parameters": {
            "managedRuleset": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the managed ruleset to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/managedRulesets/{managedRuleset}",
          "path": "projects/{project}/global/managedRulesets/{managedRuleset}",
          "description": "Gets the details for the specified managed ruleset name.",
          "id": "compute.managedRulesets.get",
          "response": {
            "$ref": "ManagedRuleset"
          }
        },
        "list": {
          "description": "Retrieves the list of all the managed rulesets available.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.managedRulesets.list",
          "httpMethod": "GET",
          "path": "projects/{project}/global/managedRulesets",
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "type": "integer",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/global/managedRulesets",
          "response": {
            "$ref": "ManagedRulesetList"
          },
          "parameterOrder": [
            "project"
          ]
        }
      }
    },
    "globalNetworkEndpointGroups": {
      "methods": {
        "detachNetworkEndpoints": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "networkEndpointGroup": {
              "location": "path",
              "required": true,
              "description": "The name of the network endpoint group where you are removing network\nendpoints. It should comply with RFC1035.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
          "parameterOrder": [
            "project",
            "networkEndpointGroup"
          ],
          "description": "Detach the network endpoint from the specified network endpoint group.",
          "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
          "request": {
            "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
          }
        },
        "listNetworkEndpoints": {
          "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
          "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
          "parameterOrder": [
            "project",
            "networkEndpointGroup"
          ],
          "response": {
            "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
          },
          "description": "Lists the network endpoints in the specified network endpoint group.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
          "httpMethod": "POST",
          "parameters": {
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "networkEndpointGroup": {
              "location": "path",
              "required": true,
              "description": "The name of the network endpoint group from which you want to generate a\nlist of included network endpoints. It should comply with RFC1035.",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "minimum": "0"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          }
        },
        "list": {
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "parameters": {
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "default": "500",
              "minimum": "0",
              "type": "integer",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "id": "compute.globalNetworkEndpointGroups.list",
          "path": "projects/{project}/global/networkEndpointGroups",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/networkEndpointGroups",
          "response": {
            "$ref": "NetworkEndpointGroupList"
          },
          "description": "Retrieves the list of network endpoint groups that are located in the\nspecified project."
        },
        "attachNetworkEndpoints": {
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "networkEndpointGroup": {
              "description": "The name of the network endpoint group where you are attaching network\nendpoints to. It should comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
          "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
          "request": {
            "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Attach a network endpoint to the specified network endpoint group.",
          "parameterOrder": [
            "project",
            "networkEndpointGroup"
          ],
          "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints"
        },
        "delete": {
          "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
          "parameterOrder": [
            "project",
            "networkEndpointGroup"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "networkEndpointGroup": {
              "type": "string",
              "description": "The name of the network endpoint group to delete. It should comply with\nRFC1035.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "httpMethod": "DELETE",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.globalNetworkEndpointGroups.delete",
          "description": "Deletes the specified network endpoint group.Note that the NEG cannot be\ndeleted if there are backend services referencing it."
        },
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/networkEndpointGroups",
          "flatPath": "projects/{project}/global/networkEndpointGroups",
          "description": "Creates a network endpoint group in the specified project using the\nparameters that are included in the request.\n\nNote: Use the following APIs to manage network endpoint groups:\n   \n   - \n   To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity\n   NEGs): zonal\n   API\n   - \n   To manage NEGs with regional scope (such as regional internet NEGs,\n   serverless NEGs, Private Service Connect NEGs): regional\n   API\n   - \n   To manage NEGs with global scope (such as global internet NEGs):global\n   API",
          "httpMethod": "POST",
          "id": "compute.globalNetworkEndpointGroups.insert",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project"
          ],
          "request": {
            "$ref": "NetworkEndpointGroup"
          }
        },
        "get": {
          "parameterOrder": [
            "project",
            "networkEndpointGroup"
          ],
          "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
          "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
          "httpMethod": "GET",
          "parameters": {
            "networkEndpointGroup": {
              "description": "The name of the network endpoint group. It should comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "NetworkEndpointGroup"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.globalNetworkEndpointGroups.get",
          "description": "Returns the specified network endpoint group."
        }
      }
    },
    "autoscalers": {
      "methods": {
        "insert": {
          "id": "compute.autoscalers.insert",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "Autoscaler"
          },
          "flatPath": "projects/{project}/zones/{zone}/autoscalers",
          "description": "Creates an autoscaler in the specified project using the data\nincluded in the request.",
          "path": "projects/{project}/zones/{zone}/autoscalers",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone"
          ]
        },
        "get": {
          "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
          "httpMethod": "GET",
          "id": "compute.autoscalers.get",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "autoscaler": {
              "type": "string",
              "description": "Name of the autoscaler to return.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
          "description": "Returns the specified autoscaler resource.",
          "response": {
            "$ref": "Autoscaler"
          },
          "parameterOrder": [
            "project",
            "zone",
            "autoscaler"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "patch": {
          "flatPath": "projects/{project}/zones/{zone}/autoscalers",
          "request": {
            "$ref": "Autoscaler"
          },
          "id": "compute.autoscalers.patch",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/autoscalers",
          "description": "Updates an autoscaler in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone"
          ],
          "httpMethod": "PATCH",
          "parameters": {
            "autoscaler": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "query",
              "description": "Name of the autoscaler to patch.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          }
        },
        "list": {
          "flatPath": "projects/{project}/zones/{zone}/autoscalers",
          "id": "compute.autoscalers.list",
          "response": {
            "$ref": "AutoscalerList"
          },
          "httpMethod": "GET",
          "parameters": {
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "path": "projects/{project}/zones/{zone}/autoscalers",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "description": "Retrieves a list of autoscalers contained within\nthe specified zone.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "testIamPermissions": {
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "id": "compute.autoscalers.testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions"
        },
        "aggregatedList": {
          "response": {
            "$ref": "AutoscalerAggregatedList"
          },
          "id": "compute.autoscalers.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/aggregated/autoscalers",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "default": "500",
              "type": "integer",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "serviceProjectNumber": {
              "format": "int64",
              "type": "string",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            }
          },
          "description": "Retrieves an aggregated list of autoscalers.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "path": "projects/{project}/aggregated/autoscalers"
        },
        "update": {
          "path": "projects/{project}/zones/{zone}/autoscalers",
          "description": "Updates an autoscaler in the specified project using the data\nincluded in the request.",
          "httpMethod": "PUT",
          "parameters": {
            "autoscaler": {
              "type": "string",
              "description": "Name of the autoscaler to update.",
              "location": "query",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/autoscalers",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "request": {
            "$ref": "Autoscaler"
          },
          "id": "compute.autoscalers.update"
        },
        "delete": {
          "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.autoscalers.delete",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameters": {
            "autoscaler": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the autoscaler to delete."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "autoscaler"
          ],
          "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
          "description": "Deletes the specified autoscaler."
        }
      }
    },
    "targetSslProxies": {
      "methods": {
        "setSslCertificates": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Changes SslCertificates for TargetSslProxy.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "targetSslProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the TargetSslProxy resource whose SslCertificate resource\nis to be set.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
          "id": "compute.targetSslProxies.setSslCertificates",
          "parameterOrder": [
            "project",
            "targetSslProxy"
          ],
          "request": {
            "$ref": "TargetSslProxiesSetSslCertificatesRequest"
          },
          "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates"
        },
        "insert": {
          "id": "compute.targetSslProxies.insert",
          "flatPath": "projects/{project}/global/targetSslProxies",
          "path": "projects/{project}/global/targetSslProxies",
          "request": {
            "$ref": "TargetSslProxy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project"
          ],
          "description": "Creates a TargetSslProxy resource in the specified project using\nthe data included in the request.",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          }
        },
        "setCertificateMap": {
          "id": "compute.targetSslProxies.setCertificateMap",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "targetSslProxy": {
              "description": "Name of the TargetSslProxy resource whose CertificateMap is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "targetSslProxy"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap",
          "request": {
            "$ref": "TargetSslProxiesSetCertificateMapRequest"
          },
          "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap",
          "description": "Changes the Certificate Map for TargetSslProxy."
        },
        "get": {
          "description": "Returns the specified TargetSslProxy resource.",
          "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "targetSslProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the TargetSslProxy resource to return."
            }
          },
          "response": {
            "$ref": "TargetSslProxy"
          },
          "id": "compute.targetSslProxies.get",
          "parameterOrder": [
            "project",
            "targetSslProxy"
          ],
          "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setBackendService": {
          "parameters": {
            "targetSslProxy": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the TargetSslProxy resource whose BackendService resource\nis to be set."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "targetSslProxy"
          ],
          "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
          "id": "compute.targetSslProxies.setBackendService",
          "request": {
            "$ref": "TargetSslProxiesSetBackendServiceRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
          "description": "Changes the BackendService for TargetSslProxy."
        },
        "setSslPolicy": {
          "parameterOrder": [
            "project",
            "targetSslProxy"
          ],
          "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the\nserver-side support for SSL features. This affects connections between\nclients and the load balancer. They do not affect the\nconnection between the load balancer and the backends.",
          "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "targetSslProxy": {
              "description": "Name of the TargetSslProxy resource whose SSL policy is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
          "request": {
            "$ref": "SslPolicyReference"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.targetSslProxies.setSslPolicy"
        },
        "delete": {
          "id": "compute.targetSslProxies.delete",
          "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
          "description": "Deletes the specified TargetSslProxy resource.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameters": {
            "targetSslProxy": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the TargetSslProxy resource to delete."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
          "parameterOrder": [
            "project",
            "targetSslProxy"
          ]
        },
        "setProxyHeader": {
          "description": "Changes the ProxyHeaderType for TargetSslProxy.",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "targetSslProxy": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
          "request": {
            "$ref": "TargetSslProxiesSetProxyHeaderRequest"
          },
          "id": "compute.targetSslProxies.setProxyHeader",
          "parameterOrder": [
            "project",
            "targetSslProxy"
          ]
        },
        "testIamPermissions": {
          "path": "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions",
          "id": "compute.targetSslProxies.testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        },
        "list": {
          "httpMethod": "GET",
          "path": "projects/{project}/global/targetSslProxies",
          "parameters": {
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "location": "query",
              "minimum": "0",
              "type": "integer",
              "default": "500"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            }
          },
          "description": "Retrieves the list of TargetSslProxy resources\navailable to the specified project.",
          "id": "compute.targetSslProxies.list",
          "flatPath": "projects/{project}/global/targetSslProxies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "TargetSslProxyList"
          }
        }
      }
    },
    "reservationBlocks": {
      "methods": {
        "testIamPermissions": {
          "httpMethod": "POST",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "parentResource": {
              "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?",
              "description": "Name or id of parent resource of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.reservationBlocks.testIamPermissions",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "zone",
            "parentResource",
            "resource"
          ],
          "path": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "description": "Returns permissions that a caller has on the specified resource."
        },
        "getIamPolicy": {
          "path": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Policy"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/getIamPolicy",
          "id": "compute.reservationBlocks.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "parameterOrder": [
            "project",
            "zone",
            "parentResource",
            "resource"
          ],
          "parameters": {
            "parentResource": {
              "description": "Name or id of parent resource of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "optionsRequestedPolicyVersion": {
              "location": "query",
              "format": "int32",
              "description": "Requested IAM Policy version.",
              "type": "integer"
            }
          },
          "httpMethod": "GET"
        },
        "setIamPolicy": {
          "path": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/setIamPolicy",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/setIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Policy"
          },
          "parameterOrder": [
            "project",
            "zone",
            "parentResource",
            "resource"
          ],
          "request": {
            "$ref": "ZoneSetNestedPolicyRequest"
          },
          "id": "compute.reservationBlocks.setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            },
            "parentResource": {
              "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?",
              "description": "Name or id of parent resource of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          }
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves a list of reservation blocks under a single reservation.",
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "reservation": {
              "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "type": "integer",
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the zone for this request. Zone name should conform to RFC1035."
            }
          },
          "id": "compute.reservationBlocks.list",
          "parameterOrder": [
            "project",
            "zone",
            "reservation"
          ],
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks",
          "response": {
            "$ref": "ReservationBlocksListResponse"
          },
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks"
        },
        "performMaintenance": {
          "parameterOrder": [
            "project",
            "zone",
            "reservation",
            "reservationBlock"
          ],
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "reservation": {
              "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "zone": {
              "description": "Name of the zone for this request. Zone name should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "reservationBlock": {
              "description": "The name of the reservation block.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "description": "Allows customers to perform maintenance on a reservation block",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ReservationsBlocksPerformMaintenanceRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance",
          "id": "compute.reservationBlocks.performMaintenance"
        },
        "get": {
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the zone for this request. Zone name should conform to RFC1035."
            },
            "reservation": {
              "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "reservationBlock": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the reservation block.\nName should conform to RFC1035 or be a resource ID."
            },
            "view": {
              "location": "query",
              "enumDescriptions": [
                "This view includes basic information about the reservation block",
                "The default / unset value. The API will default to the BASIC view.",
                "Includes detailed topology view."
              ],
              "enum": [
                "BASIC",
                "BLOCK_VIEW_UNSPECIFIED",
                "FULL"
              ],
              "type": "string",
              "description": "View of the Block."
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}",
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.reservationBlocks.get",
          "response": {
            "$ref": "ReservationBlocksGetResponse"
          },
          "parameterOrder": [
            "project",
            "zone",
            "reservation",
            "reservationBlock"
          ],
          "description": "Retrieves information about the specified reservation block."
        }
      }
    },
    "networkEndpointGroups": {
      "methods": {
        "aggregatedList": {
          "id": "compute.networkEndpointGroups.aggregatedList",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "NetworkEndpointGroupAggregatedList"
          },
          "httpMethod": "GET",
          "parameters": {
            "serviceProjectNumber": {
              "format": "int64",
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query",
              "type": "boolean"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "type": "integer",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "flatPath": "projects/{project}/aggregated/networkEndpointGroups",
          "description": "Retrieves the list of network endpoint groups and sorts them by zone.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "path": "projects/{project}/aggregated/networkEndpointGroups"
        },
        "testIamPermissions": {
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "id": "compute.networkEndpointGroups.testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource."
        },
        "detachNetworkEndpoints": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "networkEndpointGroup"
          ],
          "request": {
            "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
          },
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
          "description": "Detach a list of network endpoints from the specified network endpoint\ngroup.",
          "httpMethod": "POST",
          "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
          "parameters": {
            "zone": {
              "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "networkEndpointGroup": {
              "type": "string",
              "description": "The name of the network endpoint group where you are removing network\nendpoints. It should comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          }
        },
        "delete": {
          "httpMethod": "DELETE",
          "parameters": {
            "zone": {
              "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "networkEndpointGroup": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the network endpoint group to delete. It should comply with\nRFC1035."
            }
          },
          "id": "compute.networkEndpointGroups.delete",
          "description": "Deletes the specified network endpoint group. The network endpoints in the\nNEG and the VM instances they belong to are not terminated when the NEG is\ndeleted. Note that the NEG cannot be deleted if there are backend services\nreferencing it.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
          "parameterOrder": [
            "project",
            "zone",
            "networkEndpointGroup"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}"
        },
        "list": {
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups",
          "response": {
            "$ref": "NetworkEndpointGroupList"
          },
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "description": "Retrieves the list of network endpoint groups that are located in the\nspecified project and zone.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of thezone\nwhere the network endpoint group is located. It should comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0",
              "default": "500",
              "format": "uint32",
              "type": "integer"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            }
          },
          "id": "compute.networkEndpointGroups.list",
          "httpMethod": "GET"
        },
        "listNetworkEndpoints": {
          "httpMethod": "POST",
          "parameters": {
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "networkEndpointGroup": {
              "type": "string",
              "description": "The name of the network endpoint group from which you want to generate a\nlist of included network endpoints. It should comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035."
            },
            "maxResults": {
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
          "request": {
            "$ref": "NetworkEndpointGroupsListEndpointsRequest"
          },
          "response": {
            "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
          },
          "description": "Lists the network endpoints in the specified network endpoint group.",
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
          "id": "compute.networkEndpointGroups.listNetworkEndpoints",
          "parameterOrder": [
            "project",
            "zone",
            "networkEndpointGroup"
          ]
        },
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups",
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
          "description": "Creates a network endpoint group in the specified project using the\nparameters that are included in the request.\n\nNote: Use the following APIs to manage network endpoint groups:\n   \n   - \n   To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity\n   NEGs): zonal\n   API\n   - \n   To manage NEGs with regional scope (such as regional internet NEGs,\n   serverless NEGs, Private Service Connect NEGs): regional\n   API\n   - \n   To manage NEGs with global scope (such as global internet NEGs):global\n   API",
          "request": {
            "$ref": "NetworkEndpointGroup"
          },
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone where\nyou want to create the network endpoint group. It should comply with\nRFC1035.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "httpMethod": "POST",
          "id": "compute.networkEndpointGroups.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "attachNetworkEndpoints": {
          "description": "Attach a list of network endpoints to the specified network endpoint group.",
          "parameterOrder": [
            "project",
            "zone",
            "networkEndpointGroup"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
          "parameters": {
            "zone": {
              "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "networkEndpointGroup": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the network endpoint group where you are attaching network\nendpoints to. It should comply with RFC1035."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
          "httpMethod": "POST",
          "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
          "request": {
            "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "networkEndpointGroup": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the network endpoint group. It should comply with RFC1035."
            },
            "zone": {
              "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "networkEndpointGroup"
          ],
          "id": "compute.networkEndpointGroups.get",
          "description": "Returns the specified network endpoint group.",
          "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
          "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
          "response": {
            "$ref": "NetworkEndpointGroup"
          }
        }
      }
    },
    "regionBackendBuckets": {
      "methods": {
        "get": {
          "path": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}",
          "parameterOrder": [
            "project",
            "region",
            "backendBucket"
          ],
          "description": "Returns the specified regional BackendBucket resource.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            },
            "backendBucket": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the BackendBucket resource to return."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "BackendBucket"
          },
          "id": "compute.regionBackendBuckets.get"
        },
        "delete": {
          "parameterOrder": [
            "project",
            "region",
            "backendBucket"
          ],
          "path": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}",
          "flatPath": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}",
          "id": "compute.regionBackendBuckets.delete",
          "parameters": {
            "backendBucket": {
              "type": "string",
              "description": "Name of the BackendBucket resource to delete.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query",
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            }
          },
          "description": "Deletes the specified regional BackendBucket resource.",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "setIamPolicy": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "RegionSetPolicyRequest"
          },
          "id": "compute.regionBackendBuckets.setIamPolicy",
          "flatPath": "projects/{project}/regions/{region}/backendBuckets/{resource}/setIamPolicy",
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/backendBuckets/{resource}/setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Policy"
          }
        },
        "listUsable": {
          "id": "compute.regionBackendBuckets.listUsable",
          "description": "Retrieves a list of all usable backend buckets in the specified project in\nthe given region.",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "type": "integer",
              "default": "500"
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request.\nIt must be a string that meets the requirements in RFC1035.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/backendBuckets/listUsable",
          "path": "projects/{project}/regions/{region}/backendBuckets/listUsable",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "BackendBucketListUsable"
          }
        },
        "testIamPermissions": {
          "id": "compute.regionBackendBuckets.testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "flatPath": "projects/{project}/regions/{region}/backendBuckets/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/backendBuckets/{resource}/testIamPermissions"
        },
        "getIamPolicy": {
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "region": {
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "optionsRequestedPolicyVersion": {
              "format": "int32",
              "location": "query",
              "description": "Requested IAM Policy version.",
              "type": "integer"
            }
          },
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "id": "compute.regionBackendBuckets.getIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "flatPath": "projects/{project}/regions/{region}/backendBuckets/{resource}/getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/backendBuckets/{resource}/getIamPolicy"
        },
        "patch": {
          "flatPath": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}",
          "id": "compute.regionBackendBuckets.patch",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "BackendBucket"
          },
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "region",
            "backendBucket"
          ],
          "description": "Updates the specified  BackendBucket resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder",
              "location": "query"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "backendBucket": {
              "description": "Name of the BackendBucket resource to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}"
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region of this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/backendBuckets",
          "flatPath": "projects/{project}/regions/{region}/backendBuckets",
          "description": "Retrieves the list of BackendBucket resources available to the specified\nproject in the given region.",
          "response": {
            "$ref": "BackendBucketList"
          },
          "id": "compute.regionBackendBuckets.list"
        },
        "insert": {
          "id": "compute.regionBackendBuckets.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Creates a RegionBackendBucket in the specified project in the given scope\nusing the parameters that are included in the request.",
          "path": "projects/{project}/regions/{region}/backendBuckets",
          "request": {
            "$ref": "BackendBucket"
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/backendBuckets",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region of this request."
            }
          },
          "httpMethod": "POST"
        }
      }
    },
    "disks": {
      "methods": {
        "createSnapshot": {
          "request": {
            "$ref": "Snapshot"
          },
          "description": "Creates a snapshot of a specified persistent disk. For regular snapshot\ncreation, consider using snapshots.insert\ninstead, as that method supports more features, such as creating snapshots\nin a project different from the source disk project.",
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.disks.createSnapshot",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "guestFlush": {
              "location": "query",
              "type": "boolean",
              "description": "[Input Only] Whether to attempt an application consistent snapshot by\ninforming the OS to prepare for the snapshot process."
            },
            "disk": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the persistent disk to snapshot."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          }
        },
        "startAsyncReplication": {
          "path": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "disk": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The name of the persistent disk.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication",
          "httpMethod": "POST",
          "id": "compute.disks.startAsyncReplication",
          "description": "Starts asynchronous replication.\nMust be invoked on the primary disk.",
          "request": {
            "$ref": "DisksStartAsyncReplicationRequest"
          },
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ]
        },
        "updateKmsKey": {
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "disk": {
              "type": "string",
              "description": "Name of the Disk resource, should conform to RFC1035.",
              "location": "path",
              "required": true
            }
          },
          "description": "Rotates the customer-managed\nencryption key to the latest version for the specified persistent disk.",
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/updateKmsKey",
          "path": "projects/{project}/zones/{zone}/disks/{disk}/updateKmsKey",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "DiskUpdateKmsKeyRequest"
          },
          "id": "compute.disks.updateKmsKey"
        },
        "list": {
          "httpMethod": "GET",
          "id": "compute.disks.list",
          "description": "Retrieves a list of persistent disks contained within\nthe specified zone.",
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "minimum": "0",
              "location": "query",
              "type": "integer",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            }
          },
          "path": "projects/{project}/zones/{zone}/disks",
          "response": {
            "$ref": "DiskList"
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/disks",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "stopGroupAsyncReplication": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.disks.stopGroupAsyncReplication",
          "request": {
            "$ref": "DisksStopGroupAsyncReplicationResource"
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request. This must be the zone of the primary\nor secondary disks in the consistency group.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "description": "Stops asynchronous replication for a consistency group of disks.\nCan be invoked either in the primary or secondary scope.",
          "path": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication"
        },
        "stopAsyncReplication": {
          "path": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "disk": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "The name of the persistent disk."
            }
          },
          "id": "compute.disks.stopAsyncReplication",
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication",
          "description": "Stops asynchronous replication.\nCan be invoked either on the primary or on the secondary disk."
        },
        "getIamPolicy": {
          "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
          "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
          "id": "compute.disks.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "httpMethod": "GET",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "optionsRequestedPolicyVersion": {
              "location": "query",
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "setLabels": {
          "id": "compute.disks.setLabels",
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "description": "Sets the labels on a disk. To learn more about labels, read theLabeling\nResources documentation.",
          "httpMethod": "POST",
          "request": {
            "$ref": "ZoneSetLabelsRequest"
          }
        },
        "removeResourcePolicies": {
          "request": {
            "$ref": "DisksRemoveResourcePoliciesRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
          "description": "Removes resource policies from a disk.",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "zone": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "disk": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The disk name for this request."
            }
          },
          "id": "compute.disks.removeResourcePolicies",
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies"
        },
        "resize": {
          "description": "Resizes the specified persistent disk.\nYou can only increase the size of the disk.",
          "id": "compute.disks.resize",
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize",
          "request": {
            "$ref": "DisksResizeRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/disks/{disk}/resize",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "disk": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the persistent disk.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          }
        },
        "bulkSetLabels": {
          "request": {
            "$ref": "BulkZoneSetLabelsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the labels on many disks at once. To learn more about labels, read theLabeling\nResources documentation.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.disks.bulkSetLabels",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "resource": {
              "location": "query",
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "parameterOrder": [
            "project",
            "zone"
          ],
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/disks/bulkSetLabels",
          "flatPath": "projects/{project}/zones/{zone}/disks/bulkSetLabels"
        },
        "setIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ZoneSetPolicyRequest"
          },
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
          "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "httpMethod": "POST",
          "id": "compute.disks.setIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request."
            }
          }
        },
        "bulkInsert": {
          "description": "Bulk create a set of disks.",
          "request": {
            "$ref": "BulkInsertDiskResource"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone"
          ],
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.disks.bulkInsert",
          "flatPath": "projects/{project}/zones/{zone}/disks/bulkInsert",
          "path": "projects/{project}/zones/{zone}/disks/bulkInsert"
        },
        "delete": {
          "description": "Deletes the specified persistent disk. Deleting a disk removes its data\npermanently and is irreversible. However, deleting a disk does not\ndelete any snapshots\npreviously made from the disk. You must separatelydelete\nsnapshots.",
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "disk": {
              "pattern": "\\S{1,66}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the persistent disk to delete."
            }
          },
          "id": "compute.disks.delete",
          "path": "projects/{project}/zones/{zone}/disks/{disk}",
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}",
          "response": {
            "$ref": "Operation"
          }
        },
        "update": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "Disk"
          },
          "id": "compute.disks.update",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "paths": {
              "type": "string",
              "location": "query",
              "repeated": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "disk": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The disk name for this request."
            },
            "updateMask": {
              "format": "google-fieldmask",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "path": "projects/{project}/zones/{zone}/disks/{disk}",
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}",
          "description": "Updates the specified disk with the data included in the request.\nThe update is performed only on selected fields included as part\nof update-mask."
        },
        "get": {
          "response": {
            "$ref": "Disk"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "disk": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the persistent disk to return.",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/zones/{zone}/disks/{disk}",
          "httpMethod": "GET",
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}",
          "description": "Returns the specified persistent disk.",
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "id": "compute.disks.get"
        },
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/disks",
          "id": "compute.disks.aggregatedList",
          "response": {
            "$ref": "DiskAggregatedList"
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "path": "projects/{project}/aggregated/disks",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "default": "500",
              "location": "query"
            },
            "serviceProjectNumber": {
              "format": "int64",
              "location": "query",
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "includeAllScopes": {
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves an aggregated list of persistent disks.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`."
        },
        "addResourcePolicies": {
          "parameterOrder": [
            "project",
            "zone",
            "disk"
          ],
          "request": {
            "$ref": "DisksAddResourcePoliciesRequest"
          },
          "description": "Adds existing resource policies to a disk. You can only add one\npolicy which will be applied to this disk for scheduling snapshot\ncreation.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
          "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.disks.addResourcePolicies",
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "disk": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The disk name for this request."
            }
          },
          "httpMethod": "POST"
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "Disk"
          },
          "path": "projects/{project}/zones/{zone}/disks",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "description": "Creates a persistent disk in the specified project using the data\nin the request. You can create a disk from a source\n(sourceImage, sourceSnapshot, orsourceDisk) or create an empty 500 GB data disk by\nomitting all properties. You can also create a disk that is larger than\nthe default size by specifying the sizeGb property.",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.disks.insert",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "sourceImage": {
              "type": "string",
              "location": "query",
              "description": "Source image to restore onto a disk. This field is optional."
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/disks"
        },
        "testIamPermissions": {
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "id": "compute.disks.testIamPermissions",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ]
        }
      }
    },
    "urlMaps": {
      "methods": {
        "invalidateCache": {
          "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
          "id": "compute.urlMaps.invalidateCache",
          "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
          "parameterOrder": [
            "project",
            "urlMap"
          ],
          "request": {
            "$ref": "CacheInvalidationRule"
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Initiates a cache invalidation operation, invalidating the specified path,\nscoped to the specified UrlMap.\n\nFor more information, see [Invalidating cached\ncontent](/cdn/docs/invalidating-cached-content).",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "urlMap": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the UrlMap scoping this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST"
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/urlMaps",
          "description": "Creates a UrlMap resource in the specified project using\nthe data included in the request.",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "UrlMap"
          },
          "path": "projects/{project}/global/urlMaps",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.urlMaps.insert",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          }
        },
        "validate": {
          "parameterOrder": [
            "project",
            "urlMap"
          ],
          "path": "projects/{project}/global/urlMaps/{urlMap}/validate",
          "id": "compute.urlMaps.validate",
          "response": {
            "$ref": "UrlMapsValidateResponse"
          },
          "request": {
            "$ref": "UrlMapsValidateRequest"
          },
          "parameters": {
            "urlMap": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the UrlMap resource to be validated as.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate",
          "description": "Runs static validation for the UrlMap. In particular, the tests of the\nprovided UrlMap will be run. Calling this method does NOT create the\nUrlMap."
        },
        "testIamPermissions": {
          "id": "compute.urlMaps.testIamPermissions",
          "path": "projects/{project}/global/urlMaps/{resource}/testIamPermissions",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "POST",
          "description": "Returns permissions that a caller has on the specified resource.",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "flatPath": "projects/{project}/global/urlMaps/{resource}/testIamPermissions"
        },
        "delete": {
          "description": "Deletes the specified UrlMap resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "urlMap"
          ],
          "path": "projects/{project}/global/urlMaps/{urlMap}",
          "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
          "id": "compute.urlMaps.delete",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "urlMap": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the UrlMap resource to delete.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "DELETE"
        },
        "update": {
          "parameterOrder": [
            "project",
            "urlMap"
          ],
          "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
          "id": "compute.urlMaps.update",
          "request": {
            "$ref": "UrlMap"
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "PUT",
          "parameters": {
            "urlMap": {
              "location": "path",
              "required": true,
              "description": "Name of the UrlMap resource to update.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "path": "projects/{project}/global/urlMaps/{urlMap}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Updates the specified UrlMap resource with the data included in the\nrequest."
        },
        "aggregatedList": {
          "response": {
            "$ref": "UrlMapsAggregatedList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/aggregated/urlMaps",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string",
              "format": "int64",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Name of the project scoping this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/aggregated/urlMaps",
          "id": "compute.urlMaps.aggregatedList",
          "description": "Retrieves the list of all UrlMap resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`."
        },
        "list": {
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "type": "integer",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/global/urlMaps",
          "id": "compute.urlMaps.list",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "UrlMapList"
          },
          "description": "Retrieves the list of UrlMap resources available to the specified\nproject.",
          "flatPath": "projects/{project}/global/urlMaps"
        },
        "get": {
          "id": "compute.urlMaps.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "urlMap": {
              "description": "Name of the UrlMap resource to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
          "path": "projects/{project}/global/urlMaps/{urlMap}",
          "parameterOrder": [
            "project",
            "urlMap"
          ],
          "response": {
            "$ref": "UrlMap"
          },
          "description": "Returns the specified UrlMap resource."
        },
        "patch": {
          "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
          "path": "projects/{project}/global/urlMaps/{urlMap}",
          "request": {
            "$ref": "UrlMap"
          },
          "httpMethod": "PATCH",
          "parameters": {
            "urlMap": {
              "location": "path",
              "required": true,
              "description": "Name of the UrlMap resource to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "id": "compute.urlMaps.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "urlMap"
          ],
          "description": "Patches the specified UrlMap resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules."
        }
      }
    },
    "previewFeatures": {
      "methods": {
        "update": {
          "id": "compute.previewFeatures.update",
          "flatPath": "projects/{project}/global/previewFeatures/{previewFeature}",
          "httpMethod": "PATCH",
          "request": {
            "$ref": "PreviewFeature"
          },
          "parameters": {
            "previewFeature": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the PreviewFeature for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "description": "Patches the given PreviewFeature. This method is used to enable or disable\na PreviewFeature.",
          "parameterOrder": [
            "project",
            "previewFeature"
          ],
          "path": "projects/{project}/global/previewFeatures/{previewFeature}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "get": {
          "description": "Returns the details of the given PreviewFeature.",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "previewFeature": {
              "description": "Name of the PreviewFeature for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "response": {
            "$ref": "PreviewFeature"
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/previewFeatures/{previewFeature}",
          "parameterOrder": [
            "project",
            "previewFeature"
          ],
          "id": "compute.previewFeatures.get",
          "path": "projects/{project}/global/previewFeatures/{previewFeature}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "parameters": {
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500",
              "format": "uint32",
              "location": "query",
              "minimum": "0",
              "type": "integer"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "PreviewFeatureList"
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/previewFeatures",
          "path": "projects/{project}/global/previewFeatures",
          "id": "compute.previewFeatures.list",
          "description": "Returns the details of the given PreviewFeature.",
          "parameterOrder": [
            "project"
          ]
        }
      }
    },
    "healthChecks": {
      "methods": {
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/healthChecks",
          "response": {
            "$ref": "HealthChecksAggregatedList"
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "serviceProjectNumber": {
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "location": "query",
              "format": "int64"
            },
            "project": {
              "description": "Name of the project scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "maxResults": {
              "location": "query",
              "default": "500",
              "format": "uint32",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            }
          },
          "path": "projects/{project}/aggregated/healthChecks",
          "description": "Retrieves the list of all HealthCheck resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.healthChecks.aggregatedList"
        },
        "testIamPermissions": {
          "flatPath": "projects/{project}/global/healthChecks/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "path": "projects/{project}/global/healthChecks/{resource}/testIamPermissions",
          "id": "compute.healthChecks.testIamPermissions",
          "parameters": {
            "resource": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "description": "Returns permissions that a caller has on the specified resource."
        },
        "delete": {
          "parameterOrder": [
            "project",
            "healthCheck"
          ],
          "id": "compute.healthChecks.delete",
          "description": "Deletes the specified HealthCheck resource.",
          "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "healthCheck": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the HealthCheck resource to delete."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/healthChecks/{healthCheck}"
        },
        "update": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/healthChecks/{healthCheck}",
          "httpMethod": "PUT",
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "healthCheck": {
              "description": "Name of the HealthCheck resource to update.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "id": "compute.healthChecks.update",
          "parameterOrder": [
            "project",
            "healthCheck"
          ],
          "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
          "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request.",
          "request": {
            "$ref": "HealthCheck"
          },
          "response": {
            "$ref": "Operation"
          }
        },
        "insert": {
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/global/healthChecks",
          "description": "Creates a HealthCheck resource in the specified project using the data\nincluded in the request.",
          "flatPath": "projects/{project}/global/healthChecks",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "id": "compute.healthChecks.insert",
          "httpMethod": "POST",
          "request": {
            "$ref": "HealthCheck"
          }
        },
        "get": {
          "path": "projects/{project}/global/healthChecks/{healthCheck}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "HealthCheck"
          },
          "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
          "parameterOrder": [
            "project",
            "healthCheck"
          ],
          "id": "compute.healthChecks.get",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "healthCheck": {
              "description": "Name of the HealthCheck resource to return.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "httpMethod": "GET",
          "description": "Returns the specified HealthCheck resource."
        },
        "list": {
          "parameterOrder": [
            "project"
          ],
          "description": "Retrieves the list of HealthCheck resources available to the specified\nproject.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0",
              "type": "integer"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "response": {
            "$ref": "HealthCheckList"
          },
          "httpMethod": "GET",
          "id": "compute.healthChecks.list",
          "path": "projects/{project}/global/healthChecks",
          "flatPath": "projects/{project}/global/healthChecks"
        },
        "patch": {
          "request": {
            "$ref": "HealthCheck"
          },
          "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "path": "projects/{project}/global/healthChecks/{healthCheck}",
          "id": "compute.healthChecks.patch",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "healthCheck"
          ],
          "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
          "httpMethod": "PATCH",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "healthCheck": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the HealthCheck resource to patch.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "Operation"
          }
        }
      }
    },
    "globalOperations": {
      "methods": {
        "get": {
          "path": "projects/{project}/global/operations/{operation}",
          "parameters": {
            "operation": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Operations resource to return, or its unique numeric\nidentifier."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.globalOperations.get",
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "operation"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/operations/{operation}",
          "description": "Retrieves the specified Operations resource.",
          "response": {
            "$ref": "Operation"
          }
        },
        "wait": {
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "operation": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Operations resource to return, or its unique numeric\nidentifier."
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/operations/{operation}/wait",
          "parameterOrder": [
            "project",
            "operation"
          ],
          "description": "Waits for the specified Operation resource to return as `DONE`\nor for the request to approach the 2 minute deadline, and retrieves the\nspecified Operation resource. This method differs from the\n`GET` method in that it waits for no more than the default\ndeadline (2 minutes) and then returns the current state of the operation,\nwhich might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:\n   \n   \n    - In uncommon cases, when the server is overloaded, the request might\n    return before the default deadline is reached, or might return after zero\n    seconds.\n   - If the default deadline is reached, there is no guarantee that the\n    operation is actually done when the method returns. Be prepared to retry\n    if the operation is not `DONE`.",
          "id": "compute.globalOperations.wait",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/operations/{operation}/wait"
        },
        "aggregatedList": {
          "id": "compute.globalOperations.aggregatedList",
          "description": "Retrieves an aggregated list of all operations.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "httpMethod": "GET",
          "path": "projects/{project}/aggregated/operations",
          "parameters": {
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "serviceProjectNumber": {
              "location": "query",
              "format": "int64",
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "maxResults": {
              "type": "integer",
              "format": "uint32",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            }
          },
          "flatPath": "projects/{project}/aggregated/operations",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "OperationAggregatedList"
          }
        },
        "list": {
          "path": "projects/{project}/global/operations",
          "response": {
            "$ref": "OperationList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/global/operations",
          "id": "compute.globalOperations.list",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "type": "integer",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            }
          },
          "httpMethod": "GET",
          "description": "Retrieves a list of Operation resources contained within the specified\nproject."
        },
        "delete": {
          "id": "compute.globalOperations.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/operations/{operation}",
          "flatPath": "projects/{project}/global/operations/{operation}",
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "operation"
          ],
          "parameters": {
            "operation": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "description": "Deletes the specified Operations resource."
        }
      }
    },
    "regionSnapshotSettings": {
      "methods": {
        "patch": {
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "SnapshotSettings"
          },
          "flatPath": "projects/{project}/regions/{region}/snapshotSettings",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Patch region snapshot settings.",
          "id": "compute.regionSnapshotSettings.patch",
          "parameters": {
            "updateMask": {
              "format": "google-fieldmask",
              "type": "string",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "location": "query"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "type": "string"
            }
          },
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/snapshotSettings"
        },
        "get": {
          "id": "compute.regionSnapshotSettings.get",
          "parameterOrder": [
            "project",
            "region"
          ],
          "parameters": {
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "description": "Get region snapshot settings.",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/snapshotSettings",
          "response": {
            "$ref": "SnapshotSettings"
          },
          "flatPath": "projects/{project}/regions/{region}/snapshotSettings"
        }
      }
    },
    "routes": {
      "methods": {
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified Route resource.",
          "path": "projects/{project}/global/routes/{route}",
          "flatPath": "projects/{project}/global/routes/{route}",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "route": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the Route resource to delete."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.routes.delete",
          "parameterOrder": [
            "project",
            "route"
          ]
        },
        "insert": {
          "path": "projects/{project}/global/routes",
          "description": "Creates a Route resource in the specified project using the data included\nin the request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "Route"
          },
          "id": "compute.routes.insert",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/routes",
          "parameterOrder": [
            "project"
          ]
        },
        "testIamPermissions": {
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "path": "projects/{project}/global/routes/{resource}/testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/global/routes/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "httpMethod": "POST",
          "id": "compute.routes.testIamPermissions",
          "parameters": {
            "resource": {
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          }
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the specified Route resource.",
          "path": "projects/{project}/global/routes/{route}",
          "httpMethod": "GET",
          "parameters": {
            "route": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the Route resource to return.",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "id": "compute.routes.get",
          "flatPath": "projects/{project}/global/routes/{route}",
          "response": {
            "$ref": "Route"
          },
          "parameterOrder": [
            "project",
            "route"
          ]
        },
        "list": {
          "description": "Retrieves the list of Route resources available to the specified project.",
          "path": "projects/{project}/global/routes",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.routes.list",
          "flatPath": "projects/{project}/global/routes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "RouteList"
          },
          "httpMethod": "GET",
          "parameters": {
            "maxResults": {
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "location": "query",
              "default": "500",
              "type": "integer"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          }
        }
      }
    },
    "regionAutoscalers": {
      "methods": {
        "get": {
          "description": "Returns the specified autoscaler.",
          "response": {
            "$ref": "Autoscaler"
          },
          "id": "compute.regionAutoscalers.get",
          "parameters": {
            "autoscaler": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the autoscaler to return."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            }
          },
          "parameterOrder": [
            "project",
            "region",
            "autoscaler"
          ],
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}"
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Creates an autoscaler in the specified project using\nthe data included in the request.",
          "request": {
            "$ref": "Autoscaler"
          },
          "id": "compute.regionAutoscalers.insert",
          "flatPath": "projects/{project}/regions/{region}/autoscalers",
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "path": "projects/{project}/regions/{region}/autoscalers"
        },
        "patch": {
          "parameterOrder": [
            "project",
            "region"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionAutoscalers.patch",
          "flatPath": "projects/{project}/regions/{region}/autoscalers",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "Name of the region scoping this request."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "autoscaler": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "query",
              "type": "string",
              "description": "Name of the autoscaler to patch."
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "path": "projects/{project}/regions/{region}/autoscalers",
          "httpMethod": "PATCH",
          "description": "Updates an autoscaler in the specified project using\nthe data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "request": {
            "$ref": "Autoscaler"
          }
        },
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "path": "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
          "id": "compute.regionAutoscalers.testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "description": "Returns permissions that a caller has on the specified resource."
        },
        "list": {
          "description": "Retrieves a list of autoscalers contained within\nthe specified region.",
          "flatPath": "projects/{project}/regions/{region}/autoscalers",
          "id": "compute.regionAutoscalers.list",
          "httpMethod": "GET",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "location": "query",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "projects/{project}/regions/{region}/autoscalers",
          "response": {
            "$ref": "RegionAutoscalerList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "update": {
          "request": {
            "$ref": "Autoscaler"
          },
          "flatPath": "projects/{project}/regions/{region}/autoscalers",
          "id": "compute.regionAutoscalers.update",
          "response": {
            "$ref": "Operation"
          },
          "description": "Updates an autoscaler in the specified project using\nthe data included in the request.",
          "path": "projects/{project}/regions/{region}/autoscalers",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "PUT",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "autoscaler": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "query",
              "type": "string",
              "description": "Name of the autoscaler to update."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "delete": {
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified autoscaler.",
          "id": "compute.regionAutoscalers.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
          "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
          "parameterOrder": [
            "project",
            "region",
            "autoscaler"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "autoscaler": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the autoscaler to delete."
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "DELETE"
        }
      }
    },
    "regions": {
      "methods": {
        "list": {
          "id": "compute.regions.list",
          "response": {
            "$ref": "RegionList"
          },
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "location": "query",
              "type": "integer",
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/regions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves the list of region resources available to the specified project.\n\nTo decrease latency for this method, you can optionally omit any unneeded\ninformation from the response by using a field mask. This practice is\nespecially recommended for unused quota information\n(the `items.quotas` field).\nTo exclude one or more fields, set your request's `fields` query parameter\nto only include the fields you need. For example, to only include the `id`\nand `selfLink` fields, add the query parameter `?fields=id,selfLink` to\nyour request.\n\nThis method fails if the quota information is unavailable for the region\nand if the organization policy constraint\ncompute.requireBasicQuotaInResponse is enforced. This\nconstraint, when enforced, disables the fail-open behaviour when quota\ninformation (the `items.quotas` field) is unavailable for the region.\nIt is recommended to use the default setting\nfor the constraint unless your application requires the fail-closed\nbehaviour for this method.",
          "path": "projects/{project}/regions",
          "parameterOrder": [
            "project"
          ]
        },
        "get": {
          "id": "compute.regions.get",
          "description": "Returns the specified Region resource.\n\nTo decrease latency for this method, you can optionally omit any unneeded\ninformation from the response by using a field mask. This practice is\nespecially recommended for unused quota information (the `quotas` field).\nTo exclude one or more fields, set your request's `fields` query parameter\nto only include the fields you need. For example, to only include the `id`\nand `selfLink` fields, add the query parameter `?fields=id,selfLink` to\nyour request.\n\nThis method fails if the quota information is unavailable for the region\nand if the organization policy constraint\ncompute.requireBasicQuotaInResponse is enforced. This\nconstraint, when enforced, disables the fail-open behaviour when quota\ninformation (the `items.quotas` field) is unavailable for the region.\nIt is recommended to use the default setting\nfor the constraint unless your application requires the fail-closed\nbehaviour for this method.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Region"
          },
          "parameters": {
            "region": {
              "type": "string",
              "description": "Name of the region resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}",
          "flatPath": "projects/{project}/regions/{region}"
        }
      }
    },
    "snapshots": {
      "methods": {
        "updateKmsKey": {
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "snapshot": {
              "type": "string",
              "description": "Name of the snapshot resource to update. Should conform to RFC1035.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "snapshot"
          ],
          "id": "compute.snapshots.updateKmsKey",
          "flatPath": "projects/{project}/global/snapshots/{snapshot}/updateKmsKey",
          "description": "Rotates the customer-managed\nencryption key to the latest version for the specified snapshot.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/snapshots/{snapshot}/updateKmsKey",
          "request": {
            "$ref": "SnapshotUpdateKmsKeyRequest"
          }
        },
        "testIamPermissions": {
          "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "httpMethod": "POST",
          "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.snapshots.testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource."
        },
        "insert": {
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "description": "Creates a snapshot in the specified project using the data included\nin the request. For regular snapshot creation, consider using this method\ninstead of disks.createSnapshot,\nas this method supports more features, such as creating snapshots in a\nproject different from the source disk project.",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/global/snapshots",
          "id": "compute.snapshots.insert",
          "request": {
            "$ref": "Snapshot"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/snapshots"
        },
        "getIamPolicy": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "optionsRequestedPolicyVersion": {
              "type": "integer",
              "format": "int32",
              "location": "query",
              "description": "Requested IAM Policy version."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "httpMethod": "GET",
          "id": "compute.snapshots.getIamPolicy",
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "resource"
          ]
        },
        "get": {
          "id": "compute.snapshots.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "snapshot"
          ],
          "httpMethod": "GET",
          "flatPath": "projects/{project}/global/snapshots/{snapshot}",
          "parameters": {
            "snapshot": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the Snapshot resource to return."
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "path": "projects/{project}/global/snapshots/{snapshot}",
          "response": {
            "$ref": "Snapshot"
          },
          "description": "Returns the specified Snapshot resource."
        },
        "list": {
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "default": "500",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          },
          "flatPath": "projects/{project}/global/snapshots",
          "description": "Retrieves the list of Snapshot resources contained within\nthe specified project.",
          "response": {
            "$ref": "SnapshotList"
          },
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/snapshots",
          "id": "compute.snapshots.list"
        },
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/snapshots/{snapshot}",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "snapshot": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the Snapshot resource to delete."
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "DELETE",
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes the specified Snapshot resource. Keep in mind that deleting\na single snapshot might not necessarily delete all the data on that\nsnapshot. If any data on the snapshot that is marked for deletion is\nneeded for subsequent snapshots, the data will be moved to the next\ncorresponding snapshot.\n\nFor more information, seeDeleting\nsnapshots.",
          "parameterOrder": [
            "project",
            "snapshot"
          ],
          "flatPath": "projects/{project}/global/snapshots/{snapshot}",
          "id": "compute.snapshots.delete"
        },
        "setLabels": {
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "path": "projects/{project}/global/snapshots/{resource}/setLabels",
          "id": "compute.snapshots.setLabels",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Sets the labels on a snapshot. To learn more about labels, read theLabeling\nResources documentation.",
          "request": {
            "$ref": "GlobalSetLabelsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels"
        },
        "setIamPolicy": {
          "id": "compute.snapshots.setIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "GlobalSetPolicyRequest"
          },
          "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
          "parameters": {
            "resource": {
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "parameterOrder": [
            "project",
            "resource"
          ],
          "httpMethod": "POST",
          "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy."
        }
      }
    },
    "hosts": {
      "methods": {
        "get": {
          "id": "compute.hosts.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Retrieves information about the specified host.",
          "httpMethod": "GET",
          "parameters": {
            "association": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The parent resource association for the Host. This field specifies the\nhierarchical context (e.g., reservation, block, sub-block) when\naccessing the host. For example, reservations/reservation_name,\nreservations/reservation_name/reservationBlocks/reservation_block_name or\nreservations/reservation_name/reservationBlocks/reservation_block_name/reservationSubBlocks/reservation_sub_block_name."
            },
            "host": {
              "type": "string",
              "description": "The name of the host, formatted as RFC1035 or a resource ID\nnumber.",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "The name of the zone for this request, formatted as RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The project ID for this request."
            }
          },
          "response": {
            "$ref": "Host"
          },
          "parameterOrder": [
            "project",
            "zone",
            "association",
            "host"
          ],
          "path": "projects/{project}/zones/{zone}/{association}/hosts/{host}",
          "flatPath": "projects/{project}/zones/{zone}/{association}/hosts/{host}"
        },
        "getVersion": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/zones/{zone}/{association}/hosts/{host}/getVersion",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "host": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the host, formatted as RFC1035 or a resource ID\nnumber."
            },
            "zone": {
              "type": "string",
              "description": "Name of the zone for this request. Zone name should conform to RFC1035.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.",
              "location": "query"
            },
            "association": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The parent resource association for the Host. This field specifies the\nhierarchical context (e.g., reservation, block, sub-block) when\naccessing the host."
            }
          },
          "request": {
            "$ref": "HostsGetVersionRequest"
          },
          "description": "Allows customers to get SBOM versions of a host.",
          "parameterOrder": [
            "project",
            "zone",
            "association",
            "host"
          ],
          "path": "projects/{project}/zones/{zone}/{association}/hosts/{host}/getVersion",
          "id": "compute.hosts.getVersion"
        },
        "list": {
          "response": {
            "$ref": "HostsListResponse"
          },
          "description": "Retrieves a list of hosts.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/{association}/hosts",
          "parameters": {
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "location": "query",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The project ID for this request."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "zone": {
              "description": "The name of the zone for this request, formatted as RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "association": {
              "description": "The parent resource association for the Host. This field specifies the\nhierarchical context (e.g., reservation, block, sub-block) when\naccessing the host. For example, reservations/reservation_name,\nreservations/reservation_name/reservationBlocks/reservation_block_name or\nreservations/reservation_name/reservationBlocks/reservation_block_name/reservationSubBlocks/reservation_sub_block_name.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "flatPath": "projects/{project}/zones/{zone}/{association}/hosts",
          "id": "compute.hosts.list",
          "parameterOrder": [
            "project",
            "zone",
            "association"
          ]
        }
      }
    },
    "rolloutPlans": {
      "methods": {
        "get": {
          "description": "Gets details of a single project-scoped RolloutPlan.",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "rolloutPlan": {
              "description": "Name of the persistent rollout plan to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "rolloutPlan"
          ],
          "flatPath": "projects/{project}/global/rolloutPlans/{rolloutPlan}",
          "id": "compute.rolloutPlans.get",
          "path": "projects/{project}/global/rolloutPlans/{rolloutPlan}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "RolloutPlan"
          }
        },
        "delete": {
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "rolloutPlan"
          ],
          "path": "projects/{project}/global/rolloutPlans/{rolloutPlan}",
          "parameters": {
            "rolloutPlan": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the RolloutPlan resource to delete."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "flatPath": "projects/{project}/global/rolloutPlans/{rolloutPlan}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Deletes a RolloutPlan.",
          "id": "compute.rolloutPlans.delete"
        },
        "list": {
          "flatPath": "projects/{project}/global/rolloutPlans",
          "path": "projects/{project}/global/rolloutPlans",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "RolloutPlansListResponse"
          },
          "description": "Lists RolloutPlans in a given project and location.",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "default": "500",
              "minimum": "0",
              "location": "query",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "id": "compute.rolloutPlans.list"
        },
        "insert": {
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "id": "compute.rolloutPlans.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "parameterOrder": [
            "project"
          ],
          "description": "Creates a new RolloutPlan in a given project and location.",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "RolloutPlan"
          },
          "flatPath": "projects/{project}/global/rolloutPlans",
          "path": "projects/{project}/global/rolloutPlans"
        }
      }
    },
    "networkProfiles": {
      "methods": {
        "get": {
          "description": "Returns the specified network profile.",
          "httpMethod": "GET",
          "parameters": {
            "networkProfile": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the network profile to return.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "networkProfile"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/networkProfiles/{networkProfile}",
          "flatPath": "projects/{project}/global/networkProfiles/{networkProfile}",
          "id": "compute.networkProfiles.get",
          "response": {
            "$ref": "NetworkProfile"
          }
        },
        "list": {
          "id": "compute.networkProfiles.list",
          "description": "Retrieves a list of network profiles available to the specified\nproject.",
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "minimum": "0",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "format": "uint32",
              "default": "500"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/global/networkProfiles",
          "response": {
            "$ref": "NetworkProfilesListResponse"
          },
          "flatPath": "projects/{project}/global/networkProfiles",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        }
      }
    },
    "machineTypes": {
      "methods": {
        "list": {
          "id": "compute.machineTypes.list",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "description": "Retrieves a list of machine types available to the specified\nproject.",
          "flatPath": "projects/{project}/zones/{zone}/machineTypes",
          "path": "projects/{project}/zones/{zone}/machineTypes",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "MachineTypeList"
          },
          "parameters": {
            "maxResults": {
              "format": "uint32",
              "location": "query",
              "default": "500",
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            }
          }
        },
        "aggregatedList": {
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0",
              "location": "query"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            }
          },
          "id": "compute.machineTypes.aggregatedList",
          "path": "projects/{project}/aggregated/machineTypes",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "MachineTypeAggregatedList"
          },
          "description": "Retrieves an aggregated list of machine types.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "flatPath": "projects/{project}/aggregated/machineTypes"
        },
        "get": {
          "httpMethod": "GET",
          "parameters": {
            "machineType": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the machine type to return."
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the zone for this request."
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
          "id": "compute.machineTypes.get",
          "parameterOrder": [
            "project",
            "zone",
            "machineType"
          ],
          "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
          "response": {
            "$ref": "MachineType"
          },
          "description": "Returns the specified machine type.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        }
      }
    },
    "regionSnapshots": {
      "methods": {
        "updateKmsKey": {
          "request": {
            "$ref": "RegionSnapshotUpdateKmsKeyRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true
            },
            "snapshot": {
              "description": "Name of the snapshot resource to update. Should conform to RFC1035.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionSnapshots.updateKmsKey",
          "description": "Rotates the customer-managed\nencryption key to the latest version for the specified snapshot.",
          "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}/updateKmsKey",
          "parameterOrder": [
            "project",
            "region",
            "snapshot"
          ],
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/snapshots/{snapshot}/updateKmsKey"
        },
        "insert": {
          "id": "compute.regionSnapshots.insert",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "region": {
              "description": "Name of the region for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "region"
          ],
          "flatPath": "projects/{project}/regions/{region}/snapshots",
          "request": {
            "$ref": "Snapshot"
          },
          "description": "Creates a snapshot in the specified region using the data included\nin the request.",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/snapshots"
        },
        "getIamPolicy": {
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/regions/{region}/snapshots/{resource}/getIamPolicy",
          "id": "compute.regionSnapshots.getIamPolicy",
          "httpMethod": "GET",
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "optionsRequestedPolicyVersion": {
              "location": "query",
              "description": "Requested IAM Policy version.",
              "type": "integer",
              "format": "int32"
            },
            "region": {
              "description": "The name of the region for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/getIamPolicy",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "setLabels": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "id": "compute.regionSnapshots.setLabels",
          "parameters": {
            "region": {
              "description": "The region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "RegionSetLabelsRequest"
          },
          "path": "projects/{project}/regions/{region}/snapshots/{resource}/setLabels",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Sets the labels on a regional snapshot. To learn more about labels, read\nthe Labeling Resources\ndocumentation.",
          "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/setLabels"
        },
        "delete": {
          "id": "compute.regionSnapshots.delete",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/snapshots/{snapshot}",
          "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}",
          "description": "Deletes the specified Snapshot resource. Keep in mind that deleting\na single snapshot might not necessarily delete all the data on that\nsnapshot. If any data on the snapshot that is marked for deletion is\nneeded for subsequent snapshots, the data will be moved to the next\ncorresponding snapshot.\n\nFor more information, seeDeleting\nsnapshots.",
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "snapshot": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the snapshot resource to delete.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "description": "The name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "snapshot"
          ]
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "Snapshot"
          },
          "description": "Returns the specified Snapshot resource.",
          "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}",
          "path": "projects/{project}/regions/{region}/snapshots/{snapshot}",
          "parameterOrder": [
            "project",
            "region",
            "snapshot"
          ],
          "id": "compute.regionSnapshots.get",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "snapshot": {
              "description": "Name of the Snapshot resource to return.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "httpMethod": "GET"
        },
        "list": {
          "response": {
            "$ref": "SnapshotList"
          },
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionSnapshots.list",
          "flatPath": "projects/{project}/regions/{region}/snapshots",
          "path": "projects/{project}/regions/{region}/snapshots",
          "parameters": {
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "type": "string",
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "region": {
              "description": "Name of the region for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "maxResults": {
              "minimum": "0",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "type": "integer",
              "default": "500"
            }
          },
          "httpMethod": "GET",
          "description": "Retrieves the list of Snapshot resources contained within\nthe specified region."
        },
        "setIamPolicy": {
          "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/setIamPolicy",
          "id": "compute.regionSnapshots.setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.",
          "response": {
            "$ref": "Policy"
          },
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "path": "projects/{project}/regions/{region}/snapshots/{resource}/setIamPolicy",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "resource": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request."
            },
            "region": {
              "description": "The name of the region for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "request": {
            "$ref": "RegionSetPolicyRequest"
          }
        },
        "testIamPermissions": {
          "description": "Returns permissions that a caller has on the specified resource.",
          "id": "compute.regionSnapshots.testIamPermissions",
          "path": "projects/{project}/regions/{region}/snapshots/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/testIamPermissions",
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "description": "The name of the region for this request."
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          }
        }
      }
    },
    "imageFamilyViews": {
      "methods": {
        "get": {
          "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}",
          "id": "compute.imageFamilyViews.get",
          "response": {
            "$ref": "ImageFamilyView"
          },
          "httpMethod": "GET",
          "parameters": {
            "family": {
              "location": "path",
              "required": true,
              "description": "Name of the image family to search for.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "description": "The name of the zone for this request.",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}",
          "parameterOrder": [
            "project",
            "zone",
            "family"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "description": "Returns the latest image that is part of an image family, is not\ndeprecated and is rolled out in the specified zone."
        }
      }
    },
    "globalFrontendSettings": {
      "methods": {
        "get": {
          "flatPath": "projects/{project}/global/globalFrontendSettings",
          "id": "compute.globalFrontendSettings.get",
          "response": {
            "$ref": "GlobalFrontendSettings"
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "project": {
              "description": "Required. Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/global/globalFrontendSettings",
          "description": "Gets the Global Frontend Billing Bundle Settings for a project.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "patch": {
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "description": "Required. Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "location": "query",
              "format": "google-fieldmask",
              "type": "string",
              "description": "Field mask to support patch. E.g., \"type\"."
            },
            "requestId": {
              "description": "An optional request ID to identify requests.",
              "location": "query",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/globalFrontendSettings",
          "id": "compute.globalFrontendSettings.patch",
          "response": {
            "$ref": "GlobalFrontendSettingsPatchResponse"
          },
          "description": "Updates the Global Frontend Billing Bundle Settings for a project.",
          "request": {
            "$ref": "GlobalFrontendSettings"
          },
          "flatPath": "projects/{project}/global/globalFrontendSettings"
        }
      }
    },
    "storagePoolTypes": {
      "methods": {
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/storagePoolTypes",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/aggregated/storagePoolTypes",
          "response": {
            "$ref": "StoragePoolTypeAggregatedList"
          },
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "includeAllScopes": {
              "type": "boolean",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "location": "query"
            },
            "serviceProjectNumber": {
              "location": "query",
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0"
            }
          },
          "description": "Retrieves an aggregated list of storage pool types.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "id": "compute.storagePoolTypes.aggregatedList",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "id": "compute.storagePoolTypes.list",
          "httpMethod": "GET",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "location": "query",
              "minimum": "0"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "response": {
            "$ref": "StoragePoolTypeList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/zones/{zone}/storagePoolTypes",
          "description": "Retrieves a list of storage pool types available to the specified\nproject."
        },
        "get": {
          "id": "compute.storagePoolTypes.get",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "storagePoolType": {
              "description": "Name of the storage pool type to return.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "StoragePoolType"
          },
          "parameterOrder": [
            "project",
            "zone",
            "storagePoolType"
          ],
          "description": "Returns the specified storage pool type.",
          "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}",
          "path": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}"
        }
      }
    },
    "publicAdvertisedPrefixes": {
      "methods": {
        "insert": {
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            }
          },
          "description": "Creates a PublicAdvertisedPrefix in the specified project\nusing the parameters that are included in the request.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/publicAdvertisedPrefixes",
          "parameterOrder": [
            "project"
          ],
          "flatPath": "projects/{project}/global/publicAdvertisedPrefixes",
          "request": {
            "$ref": "PublicAdvertisedPrefix"
          },
          "id": "compute.publicAdvertisedPrefixes.insert",
          "response": {
            "$ref": "Operation"
          }
        },
        "withdraw": {
          "parameters": {
            "publicAdvertisedPrefix": {
              "description": "The name of the public advertised prefix. It should comply with RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "parameterOrder": [
            "project",
            "publicAdvertisedPrefix"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.publicAdvertisedPrefixes.withdraw",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw",
          "description": "Withdraws the specified PublicAdvertisedPrefix",
          "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw"
        },
        "patch": {
          "id": "compute.publicAdvertisedPrefixes.patch",
          "parameterOrder": [
            "project",
            "publicAdvertisedPrefix"
          ],
          "description": "Patches the specified Router resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.",
          "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
          "httpMethod": "PATCH",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "publicAdvertisedPrefix": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the PublicAdvertisedPrefix resource to patch."
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            }
          },
          "request": {
            "$ref": "PublicAdvertisedPrefix"
          }
        },
        "get": {
          "description": "Returns the specified PublicAdvertisedPrefix resource.",
          "id": "compute.publicAdvertisedPrefixes.get",
          "parameterOrder": [
            "project",
            "publicAdvertisedPrefix"
          ],
          "response": {
            "$ref": "PublicAdvertisedPrefix"
          },
          "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "publicAdvertisedPrefix": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the PublicAdvertisedPrefix resource to return.",
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}"
        },
        "announce": {
          "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce",
          "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.publicAdvertisedPrefixes.announce",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "publicAdvertisedPrefix": {
              "type": "string",
              "description": "The name of the public advertised prefix. It should comply with RFC1035.",
              "location": "path",
              "required": true
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "description": "Announces the specified PublicAdvertisedPrefix",
          "parameterOrder": [
            "project",
            "publicAdvertisedPrefix"
          ]
        },
        "delete": {
          "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "publicAdvertisedPrefix": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "description": "Name of the PublicAdvertisedPrefix resource to delete.",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            }
          },
          "httpMethod": "DELETE",
          "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.publicAdvertisedPrefixes.delete",
          "description": "Deletes the specified PublicAdvertisedPrefix",
          "parameterOrder": [
            "project",
            "publicAdvertisedPrefix"
          ]
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "PublicAdvertisedPrefixList"
          },
          "id": "compute.publicAdvertisedPrefixes.list",
          "parameters": {
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "minimum": "0",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            }
          },
          "httpMethod": "GET",
          "path": "projects/{project}/global/publicAdvertisedPrefixes",
          "flatPath": "projects/{project}/global/publicAdvertisedPrefixes",
          "description": "Lists the PublicAdvertisedPrefixes for a project."
        }
      }
    },
    "projectViews": {
      "methods": {
        "get": {
          "parameters": {
            "project": {
              "description": "Required. Project ID for this request. This is part of the URL path.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Required. Name of the region for this request. This is part of the URL path."
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "ProjectView"
          },
          "flatPath": "projects/{project}/regions/{region}/projectViews",
          "parameterOrder": [
            "project",
            "region"
          ],
          "id": "compute.projectViews.get",
          "description": "Returns the specified global ProjectViews resource, with a regional\ncontext.\nThis regional API endpoint reads resource metadata from regional\nread-only replicas. Because changes are copied to these regional replicas\nasynchronously, for real-time resource reads or any write operations\n(creating, updating, or deleting resources), use the global\n[projects.get](https://cloud.google.com/compute/docs/reference/rest/v1/projects/get)\nendpoint.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/projectViews"
        }
      }
    },
    "regionHealthChecks": {
      "methods": {
        "patch": {
          "request": {
            "$ref": "HealthCheck"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "parameterOrder": [
            "project",
            "region",
            "healthCheck"
          ],
          "response": {
            "$ref": "Operation"
          },
          "id": "compute.regionHealthChecks.patch",
          "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "httpMethod": "PATCH",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "healthCheck": {
              "description": "Name of the HealthCheck resource to patch.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            }
          }
        },
        "testIamPermissions": {
          "description": "Returns permissions that a caller has on the specified resource.",
          "flatPath": "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "path": "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request."
            }
          },
          "id": "compute.regionHealthChecks.testIamPermissions"
        },
        "insert": {
          "id": "compute.regionHealthChecks.insert",
          "flatPath": "projects/{project}/regions/{region}/healthChecks",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "HealthCheck"
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "type": "string"
            }
          },
          "path": "projects/{project}/regions/{region}/healthChecks",
          "description": "Creates a HealthCheck resource in the specified project using the data\nincluded in the request.",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "list": {
          "path": "projects/{project}/regions/{region}/healthChecks",
          "parameters": {
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "maxResults": {
              "type": "integer",
              "default": "500",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "location": "query",
              "minimum": "0",
              "format": "uint32"
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            }
          },
          "description": "Retrieves the list of HealthCheck resources available to the specified\nproject.",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "HealthCheckList"
          },
          "id": "compute.regionHealthChecks.list",
          "flatPath": "projects/{project}/regions/{region}/healthChecks",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionHealthChecks.get",
          "response": {
            "$ref": "HealthCheck"
          },
          "httpMethod": "GET",
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "healthCheck": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the HealthCheck resource to return.",
              "location": "path",
              "required": true
            }
          },
          "description": "Returns the specified HealthCheck resource.",
          "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "parameterOrder": [
            "project",
            "region",
            "healthCheck"
          ]
        },
        "delete": {
          "id": "compute.regionHealthChecks.delete",
          "description": "Deletes the specified HealthCheck resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "healthCheck": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the HealthCheck resource to delete.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "parameterOrder": [
            "project",
            "region",
            "healthCheck"
          ]
        },
        "update": {
          "parameterOrder": [
            "project",
            "region",
            "healthCheck"
          ],
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "healthCheck": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the HealthCheck resource to update."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "httpMethod": "PUT",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
          "id": "compute.regionHealthChecks.update",
          "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request.",
          "request": {
            "$ref": "HealthCheck"
          }
        }
      }
    },
    "regionInstanceGroups": {
      "methods": {
        "listInstances": {
          "parameterOrder": [
            "project",
            "region",
            "instanceGroup"
          ],
          "request": {
            "$ref": "RegionInstanceGroupsListInstancesRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "POST",
          "parameters": {
            "instanceGroup": {
              "location": "path",
              "required": true,
              "description": "Name of the regional instance group for which we want to list the\ninstances.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "maxResults": {
              "format": "uint32",
              "default": "500",
              "location": "query",
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            }
          },
          "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
          "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
          "response": {
            "$ref": "RegionInstanceGroupsListInstances"
          },
          "id": "compute.regionInstanceGroups.listInstances",
          "description": "Lists the instances in the specified instance group and displays\ninformation about the named ports. Depending on the specified options, this\nmethod can list all instances or only the instances that are running.\nThe orderBy query parameter is not supported."
        },
        "list": {
          "response": {
            "$ref": "RegionInstanceGroupList"
          },
          "id": "compute.regionInstanceGroups.list",
          "flatPath": "projects/{project}/regions/{region}/instanceGroups",
          "description": "Retrieves the list of instance group resources contained within\nthe specified region.",
          "parameterOrder": [
            "project",
            "region"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "type": "integer",
              "default": "500",
              "location": "query"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported."
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            }
          },
          "path": "projects/{project}/regions/{region}/instanceGroups",
          "httpMethod": "GET"
        },
        "get": {
          "parameterOrder": [
            "project",
            "region",
            "instanceGroup"
          ],
          "description": "Returns the specified instance group resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
          "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "instanceGroup": {
              "description": "Name of the instance group resource to return.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "InstanceGroup"
          },
          "id": "compute.regionInstanceGroups.get"
        },
        "setNamedPorts": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
          "description": "Sets the named ports for the specified regional instance group.",
          "request": {
            "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "instanceGroup"
          ],
          "id": "compute.regionInstanceGroups.setNamedPorts",
          "parameters": {
            "instanceGroup": {
              "description": "The name of the regional instance group where the named ports are updated.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
          "httpMethod": "POST"
        },
        "testIamPermissions": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
          "id": "compute.regionInstanceGroups.testIamPermissions",
          "httpMethod": "POST",
          "parameters": {
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request."
            },
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "resource": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        }
      }
    },
    "futureReservations": {
      "methods": {
        "delete": {
          "id": "compute.futureReservations.delete",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "description": "Name of the zone for this request. Name should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "futureReservation": {
              "description": "Name of the future reservation to retrieve. Name should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}",
          "description": "Deletes the specified future reservation.",
          "parameterOrder": [
            "project",
            "zone",
            "futureReservation"
          ],
          "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}"
        },
        "update": {
          "httpMethod": "PATCH",
          "parameters": {
            "futureReservation": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the reservation to update. Name should conform to RFC1035."
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "type": "string",
              "description": "update_mask indicates fields to be updated as part of this request.",
              "format": "google-fieldmask",
              "location": "query"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request. Name should conform to RFC1035."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "description": "Updates the specified future reservation.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.futureReservations.update",
          "request": {
            "$ref": "FutureReservation"
          },
          "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}",
          "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}",
          "parameterOrder": [
            "project",
            "zone",
            "futureReservation"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "aggregatedList": {
          "response": {
            "$ref": "FutureReservationsAggregatedListResponse"
          },
          "parameterOrder": [
            "project"
          ],
          "httpMethod": "GET",
          "parameters": {
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "serviceProjectNumber": {
              "type": "string",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "format": "int64",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "minimum": "0",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32",
              "default": "500",
              "type": "integer",
              "location": "query"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "flatPath": "projects/{project}/aggregated/futureReservations",
          "id": "compute.futureReservations.aggregatedList",
          "path": "projects/{project}/aggregated/futureReservations",
          "description": "Retrieves an aggregated list of future reservations.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "get": {
          "parameterOrder": [
            "project",
            "zone",
            "futureReservation"
          ],
          "description": "Retrieves information about the specified future reservation.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the zone for this request. Name should conform to RFC1035."
            },
            "futureReservation": {
              "location": "path",
              "required": true,
              "description": "Name of the future reservation to retrieve. Name should conform to RFC1035.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            }
          },
          "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}",
          "httpMethod": "GET",
          "response": {
            "$ref": "FutureReservation"
          },
          "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}",
          "id": "compute.futureReservations.get"
        },
        "cancel": {
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}/cancel",
          "parameters": {
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "futureReservation": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the future reservation to retrieve. Name should conform to RFC1035."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "Name of the zone for this request. Name should conform to RFC1035.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}/cancel",
          "response": {
            "$ref": "Operation"
          },
          "description": "Cancel the specified future reservation.",
          "id": "compute.futureReservations.cancel",
          "parameterOrder": [
            "project",
            "zone",
            "futureReservation"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ]
        },
        "insert": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone"
          ],
          "path": "projects/{project}/zones/{zone}/futureReservations",
          "description": "Creates a new Future Reservation.",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "Name of the zone for this request. Name should conform to RFC1035.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "id": "compute.futureReservations.insert",
          "httpMethod": "POST",
          "request": {
            "$ref": "FutureReservation"
          },
          "flatPath": "projects/{project}/zones/{zone}/futureReservations"
        },
        "list": {
          "parameterOrder": [
            "project",
            "zone"
          ],
          "flatPath": "projects/{project}/zones/{zone}/futureReservations",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.futureReservations.list",
          "path": "projects/{project}/zones/{zone}/futureReservations",
          "response": {
            "$ref": "FutureReservationsListResponse"
          },
          "httpMethod": "GET",
          "description": "A list of all the future reservations that have been configured for the\nspecified project in specified zone.",
          "parameters": {
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "maxResults": {
              "default": "500",
              "type": "integer",
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "zone": {
              "description": "Name of the zone for this request. Name should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          }
        }
      }
    },
    "reservations": {
      "methods": {
        "delete": {
          "description": "Deletes the specified reservation.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "reservation"
          ],
          "parameters": {
            "zone": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "reservation": {
              "description": "Name of the reservation to delete.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "httpMethod": "DELETE",
          "id": "compute.reservations.delete",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}"
        },
        "update": {
          "id": "compute.reservations.update",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "updateMask": {
              "type": "string",
              "location": "query",
              "description": "Update_mask indicates fields to be updated as part of this request.",
              "format": "google-fieldmask"
            },
            "paths": {
              "type": "string",
              "repeated": true,
              "location": "query"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "reservation": {
              "location": "path",
              "required": true,
              "description": "Name of the reservation to update.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            }
          },
          "httpMethod": "PATCH",
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "zone",
            "reservation"
          ],
          "description": "Update share settings of the reservation.",
          "request": {
            "$ref": "Reservation"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}"
        },
        "testIamPermissions": {
          "description": "Returns permissions that a caller has on the specified resource.",
          "id": "compute.reservations.testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "httpMethod": "POST",
          "parameters": {
            "zone": {
              "description": "The name of the zone for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            }
          },
          "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        },
        "performMaintenance": {
          "parameterOrder": [
            "project",
            "zone",
            "reservation"
          ],
          "id": "compute.reservations.performMaintenance",
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "reservation": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "Name of the zone for this request. Zone name should conform to RFC1035.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}/performMaintenance",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "request": {
            "$ref": "ReservationsPerformMaintenanceRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/performMaintenance",
          "description": "Perform maintenance on an extended reservation"
        },
        "get": {
          "id": "compute.reservations.get",
          "response": {
            "$ref": "Reservation"
          },
          "httpMethod": "GET",
          "parameterOrder": [
            "project",
            "zone",
            "reservation"
          ],
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}",
          "parameters": {
            "reservation": {
              "description": "Name of the reservation to retrieve.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
          "description": "Retrieves information about the specified reservation.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "getIamPolicy": {
          "id": "compute.reservations.getIamPolicy",
          "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "optionsRequestedPolicyVersion": {
              "type": "integer",
              "description": "Requested IAM Policy version.",
              "location": "query",
              "format": "int32"
            },
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "zone": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the zone for this request.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "Policy"
          },
          "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.",
          "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "list": {
          "parameters": {
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request."
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "maxResults": {
              "default": "500",
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "minimum": "0"
            },
            "zone": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the zone for this request."
            }
          },
          "response": {
            "$ref": "ReservationList"
          },
          "httpMethod": "GET",
          "path": "projects/{project}/zones/{zone}/reservations",
          "flatPath": "projects/{project}/zones/{zone}/reservations",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.reservations.list",
          "description": "A list of all the reservations that have been configured for the\nspecified project in specified zone.",
          "parameterOrder": [
            "project",
            "zone"
          ]
        },
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/reservations",
          "path": "projects/{project}/aggregated/reservations",
          "httpMethod": "GET",
          "parameters": {
            "orderBy": {
              "type": "string",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query"
            },
            "filter": {
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query"
            },
            "project": {
              "location": "path",
              "required": true,
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "maxResults": {
              "format": "uint32",
              "default": "500",
              "minimum": "0",
              "type": "integer",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            },
            "serviceProjectNumber": {
              "type": "string",
              "format": "int64",
              "location": "query",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api."
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "pageToken": {
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReservationAggregatedList"
          },
          "description": "Retrieves an aggregated list of reservations.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameterOrder": [
            "project"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.reservations.aggregatedList"
        },
        "insert": {
          "request": {
            "$ref": "Reservation"
          },
          "id": "compute.reservations.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/zones/{zone}/reservations",
          "description": "Creates a new reservation. For more information, readReserving zonal\nresources.",
          "httpMethod": "POST",
          "parameters": {
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "zone": {
              "description": "Name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "response": {
            "$ref": "Operation"
          }
        },
        "resize": {
          "parameters": {
            "zone": {
              "type": "string",
              "description": "Name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "reservation": {
              "description": "Name of the reservation to update.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "description": "Resizes the reservation (applicable to standalone reservations only). For\nmore information, readModifying\nreservations.",
          "id": "compute.reservations.resize",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
          "parameterOrder": [
            "project",
            "zone",
            "reservation"
          ],
          "request": {
            "$ref": "ReservationsResizeRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize"
        },
        "setIamPolicy": {
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.reservations.setIamPolicy",
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true
            },
            "zone": {
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Policy"
          },
          "request": {
            "$ref": "ZoneSetPolicyRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
          "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
          "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy."
        }
      }
    },
    "instanceGroups": {
      "methods": {
        "removeInstances": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.instanceGroups.removeInstances",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroup"
          ],
          "parameters": {
            "zone": {
              "description": "The name of the zone\nwhere the instance group is located.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "instanceGroup": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the instance group where the specified instances will be\nremoved."
            }
          },
          "httpMethod": "POST",
          "response": {
            "$ref": "Operation"
          },
          "description": "Removes one or more instances from the specified instance group, but does\nnot delete those instances.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration before the VM instance is removed or deleted.",
          "request": {
            "$ref": "InstanceGroupsRemoveInstancesRequest"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
          "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances"
        },
        "list": {
          "response": {
            "$ref": "InstanceGroupList"
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "httpMethod": "GET",
          "id": "compute.instanceGroups.list",
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of thezone\nwhere the instance group is located.",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "returnPartialSuccess": {
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "maxResults": {
              "location": "query",
              "minimum": "0",
              "type": "integer",
              "format": "uint32",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            }
          },
          "path": "projects/{project}/zones/{zone}/instanceGroups",
          "description": "Retrieves the list of zonal instance group resources contained within the\nspecified zone.\n\nFor managed instance groups, use theinstanceGroupManagers\nor regionInstanceGroupManagers\nmethods instead.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroup"
          ],
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of the zone\nwhere the instance group is located.",
              "location": "path",
              "required": true
            },
            "instanceGroup": {
              "location": "path",
              "required": true,
              "description": "The name of the instance group to delete.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "id": "compute.instanceGroups.delete",
          "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
          "description": "Deletes the specified instance group. The instances in the group are not\ndeleted. Note that instance group must not belong to a backend service.\nRead\nDeleting an instance group for more information.",
          "response": {
            "$ref": "Operation"
          }
        },
        "setNamedPorts": {
          "parameters": {
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query"
            },
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone\nwhere the instance group is located.",
              "type": "string"
            },
            "instanceGroup": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the instance group where the named ports are updated."
            }
          },
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroup"
          ],
          "httpMethod": "POST",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "response": {
            "$ref": "Operation"
          },
          "description": "Sets the named ports for the specified instance group.",
          "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
          "id": "compute.instanceGroups.setNamedPorts",
          "request": {
            "$ref": "InstanceGroupsSetNamedPortsRequest"
          }
        },
        "addInstances": {
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone\nwhere the instance group is located.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "instanceGroup": {
              "location": "path",
              "required": true,
              "description": "The name of the instance group where you are adding instances.",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "POST",
          "id": "compute.instanceGroups.addInstances",
          "request": {
            "$ref": "InstanceGroupsAddInstancesRequest"
          },
          "description": "Adds a list of instances to the specified instance group.  All of the\ninstances in the instance group must be in the same network/subnetwork.\nRead \nAdding instances for more information.",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroup"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
          "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances"
        },
        "insert": {
          "path": "projects/{project}/zones/{zone}/instanceGroups",
          "parameterOrder": [
            "project",
            "zone"
          ],
          "description": "Creates an instance group in the specified project using the\nparameters that are included in the request.",
          "id": "compute.instanceGroups.insert",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups",
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "InstanceGroup"
          },
          "parameters": {
            "zone": {
              "type": "string",
              "description": "The name of the zone\nwhere you want to create the instance group.",
              "location": "path",
              "required": true
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          }
        },
        "aggregatedList": {
          "httpMethod": "GET",
          "parameters": {
            "maxResults": {
              "type": "integer",
              "default": "500",
              "minimum": "0",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "format": "uint32"
            },
            "returnPartialSuccess": {
              "location": "query",
              "type": "boolean",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code."
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            },
            "serviceProjectNumber": {
              "location": "query",
              "format": "int64",
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions."
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/aggregated/instanceGroups",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.instanceGroups.aggregatedList",
          "flatPath": "projects/{project}/aggregated/instanceGroups",
          "response": {
            "$ref": "InstanceGroupAggregatedList"
          },
          "description": "Retrieves the list of instance groups and sorts them by zone.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`."
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "parameters": {
            "zone": {
              "location": "path",
              "required": true,
              "description": "The name of the zone\nwhere the instance group is located.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "instanceGroup": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the instance group."
            }
          },
          "response": {
            "$ref": "InstanceGroup"
          },
          "httpMethod": "GET",
          "id": "compute.instanceGroups.get",
          "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroup"
          ],
          "description": "Returns the specified zonal instance group. Get a list of available zonal\ninstance groups by making a list() request.\n\nFor managed instance groups, use theinstanceGroupManagers\nor regionInstanceGroupManagers\nmethods instead."
        },
        "listInstances": {
          "parameters": {
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "type": "string"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "location": "query",
              "type": "string"
            },
            "zone": {
              "description": "The name of the zone\nwhere the instance group is located.",
              "type": "string",
              "location": "path",
              "required": true
            },
            "instanceGroup": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "The name of the instance group from which you want to generate a list\nof included instances."
            },
            "maxResults": {
              "minimum": "0",
              "format": "uint32",
              "type": "integer",
              "default": "500",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)"
            }
          },
          "description": "Lists the instances in the specified instance group.\nThe orderBy query parameter is not supported.\nThe filter query parameter is supported, but only for\nexpressions that use `eq` (equal) or `ne` (not equal) operators.",
          "httpMethod": "POST",
          "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "request": {
            "$ref": "InstanceGroupsListInstancesRequest"
          },
          "id": "compute.instanceGroups.listInstances",
          "parameterOrder": [
            "project",
            "zone",
            "instanceGroup"
          ],
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
          "response": {
            "$ref": "InstanceGroupsListInstances"
          }
        },
        "testIamPermissions": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "resource": {
              "location": "path",
              "required": true,
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "zone": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "The name of the zone for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            }
          },
          "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
          "id": "compute.instanceGroups.testIamPermissions",
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "parameterOrder": [
            "project",
            "zone",
            "resource"
          ],
          "description": "Returns permissions that a caller has on the specified resource.",
          "path": "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions"
        }
      }
    },
    "httpHealthChecks": {
      "methods": {
        "list": {
          "httpMethod": "GET",
          "parameters": {
            "orderBy": {
              "location": "query",
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "type": "string"
            },
            "pageToken": {
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "location": "query",
              "type": "string"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "maxResults": {
              "type": "integer",
              "minimum": "0",
              "format": "uint32",
              "location": "query",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "default": "500"
            },
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "location": "query",
              "type": "boolean"
            }
          },
          "description": "Retrieves the list of HttpHealthCheck resources available to the specified\nproject.",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "HttpHealthCheckList"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/httpHealthChecks",
          "flatPath": "projects/{project}/global/httpHealthChecks",
          "id": "compute.httpHealthChecks.list"
        },
        "testIamPermissions": {
          "httpMethod": "POST",
          "parameterOrder": [
            "project",
            "resource"
          ],
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "resource": {
              "description": "Name or id of the resource for this request.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            }
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "description": "Returns permissions that a caller has on the specified resource.",
          "id": "compute.httpHealthChecks.testIamPermissions",
          "path": "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "response": {
            "$ref": "TestPermissionsResponse"
          }
        },
        "insert": {
          "description": "Creates a HttpHealthCheck resource in the specified project using the data\nincluded in the request.",
          "parameterOrder": [
            "project"
          ],
          "path": "projects/{project}/global/httpHealthChecks",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.httpHealthChecks.insert",
          "response": {
            "$ref": "Operation"
          },
          "request": {
            "$ref": "HttpHealthCheck"
          },
          "flatPath": "projects/{project}/global/httpHealthChecks"
        },
        "patch": {
          "id": "compute.httpHealthChecks.patch",
          "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
          "request": {
            "$ref": "HttpHealthCheck"
          },
          "description": "Updates a HttpHealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "httpHealthCheck": {
              "description": "Name of the HttpHealthCheck resource to patch.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "type": "string",
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "httpMethod": "PATCH",
          "parameterOrder": [
            "project",
            "httpHealthCheck"
          ]
        },
        "delete": {
          "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "parameterOrder": [
            "project",
            "httpHealthCheck"
          ],
          "id": "compute.httpHealthChecks.delete",
          "description": "Deletes the specified HttpHealthCheck resource.",
          "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
          "parameters": {
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "httpHealthCheck": {
              "type": "string",
              "description": "Name of the HttpHealthCheck resource to delete.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "DELETE"
        },
        "update": {
          "description": "Updates a HttpHealthCheck resource in the specified project using the data\nincluded in the request.",
          "parameterOrder": [
            "project",
            "httpHealthCheck"
          ],
          "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
          "request": {
            "$ref": "HttpHealthCheck"
          },
          "parameters": {
            "project": {
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "description": "Project ID for this request."
            },
            "httpHealthCheck": {
              "description": "Name of the HttpHealthCheck resource to update.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "PUT",
          "id": "compute.httpHealthChecks.update",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}"
        },
        "get": {
          "parameterOrder": [
            "project",
            "httpHealthCheck"
          ],
          "description": "Returns the specified HttpHealthCheck resource.",
          "response": {
            "$ref": "HttpHealthCheck"
          },
          "id": "compute.httpHealthChecks.get",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
          "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
          "parameters": {
            "httpHealthCheck": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "description": "Name of the HttpHealthCheck resource to return.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            }
          },
          "httpMethod": "GET"
        }
      }
    },
    "regionHealthSources": {
      "methods": {
        "patch": {
          "id": "compute.regionHealthSources.patch",
          "response": {
            "$ref": "Operation"
          },
          "parameterOrder": [
            "project",
            "region",
            "healthSource"
          ],
          "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}",
          "httpMethod": "PATCH",
          "parameters": {
            "region": {
              "description": "Name of the region scoping this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "healthSource": {
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the HealthSource to update. The name\nmust be 1-63 characters long, and comply with RFC1035."
            },
            "requestId": {
              "location": "query",
              "type": "string",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000)."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "path": "projects/{project}/regions/{region}/healthSources/{healthSource}",
          "request": {
            "$ref": "HealthSource"
          },
          "description": "Updates the specified regional HealthSource resource\nwith the data included in the request.  This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules."
        },
        "list": {
          "description": "Lists the HealthSources for a project in the given region.",
          "flatPath": "projects/{project}/regions/{region}/healthSources",
          "httpMethod": "GET",
          "parameters": {
            "returnPartialSuccess": {
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean",
              "location": "query"
            },
            "filter": {
              "location": "query",
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string"
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request."
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results."
            },
            "maxResults": {
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "type": "integer",
              "format": "uint32",
              "minimum": "0",
              "default": "500",
              "location": "query"
            },
            "project": {
              "type": "string",
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "HealthSourceList"
          },
          "path": "projects/{project}/regions/{region}/healthSources",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionHealthSources.list",
          "parameterOrder": [
            "project",
            "region"
          ]
        },
        "insert": {
          "request": {
            "$ref": "HealthSource"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "id": "compute.regionHealthSources.insert",
          "flatPath": "projects/{project}/regions/{region}/healthSources",
          "parameterOrder": [
            "project",
            "region"
          ],
          "httpMethod": "POST",
          "path": "projects/{project}/regions/{region}/healthSources",
          "parameters": {
            "requestId": {
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "location": "query",
              "type": "string"
            },
            "project": {
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "description": "Project ID for this request."
            },
            "region": {
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request."
            }
          },
          "description": "Create a HealthSource in the specified project in the given region\nusing the parameters that are included in the request.",
          "response": {
            "$ref": "Operation"
          }
        },
        "get": {
          "description": "Returns the specified HealthSource resource in the given region.",
          "id": "compute.regionHealthSources.get",
          "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}",
          "parameterOrder": [
            "project",
            "region",
            "healthSource"
          ],
          "httpMethod": "GET",
          "path": "projects/{project}/regions/{region}/healthSources/{healthSource}",
          "parameters": {
            "healthSource": {
              "description": "Name of the HealthSource resource to return.",
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))"
            },
            "region": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Name of the region scoping this request."
            }
          },
          "response": {
            "$ref": "HealthSource"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "aggregatedList": {
          "flatPath": "projects/{project}/aggregated/healthSources",
          "description": "Retrieves the list of all HealthSource resources (all\nregional) available to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.",
          "parameterOrder": [
            "project"
          ],
          "id": "compute.regionHealthSources.aggregatedList",
          "path": "projects/{project}/aggregated/healthSources",
          "response": {
            "$ref": "HealthSourceAggregatedList"
          },
          "parameters": {
            "maxResults": {
              "type": "integer",
              "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)",
              "minimum": "0",
              "format": "uint32",
              "default": "500",
              "location": "query"
            },
            "filter": {
              "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.",
              "type": "string",
              "location": "query"
            },
            "serviceProjectNumber": {
              "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.",
              "location": "query",
              "format": "int64",
              "type": "string"
            },
            "project": {
              "description": "Name of the project scoping this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true
            },
            "orderBy": {
              "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.",
              "location": "query",
              "type": "string"
            },
            "returnPartialSuccess": {
              "location": "query",
              "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.",
              "type": "boolean"
            },
            "pageToken": {
              "location": "query",
              "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.",
              "type": "string"
            },
            "includeAllScopes": {
              "location": "query",
              "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.",
              "type": "boolean"
            }
          },
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ]
        },
        "delete": {
          "parameterOrder": [
            "project",
            "region",
            "healthSource"
          ],
          "id": "compute.regionHealthSources.delete",
          "parameters": {
            "healthSource": {
              "description": "Name of the HealthSource resource to delete.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "type": "string",
              "location": "path",
              "required": true
            },
            "project": {
              "description": "Project ID for this request.",
              "type": "string",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true
            },
            "requestId": {
              "location": "query",
              "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).",
              "type": "string"
            },
            "region": {
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "Name of the region scoping this request.",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute"
          ],
          "httpMethod": "DELETE",
          "description": "Deletes the specified HealthSource in the given region",
          "response": {
            "$ref": "Operation"
          },
          "path": "projects/{project}/regions/{region}/healthSources/{healthSource}",
          "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}"
        },
        "testIamPermissions": {
          "parameterOrder": [
            "project",
            "region",
            "resource"
          ],
          "id": "compute.regionHealthSources.testIamPermissions",
          "description": "Returns permissions that a caller has on the specified resource.",
          "response": {
            "$ref": "TestPermissionsResponse"
          },
          "request": {
            "$ref": "TestPermissionsRequest"
          },
          "path": "projects/{project}/regions/{region}/healthSources/{resource}/testIamPermissions",
          "flatPath": "projects/{project}/regions/{region}/healthSources/{resource}/testIamPermissions",
          "parameters": {
            "resource": {
              "type": "string",
              "description": "Name or id of the resource for this request.",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true
            },
            "region": {
              "location": "path",
              "required": true,
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
              "description": "The name of the region for this request.",
              "type": "string"
            },
            "project": {
              "description": "Project ID for this request.",
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "httpMethod": "POST"
        },
        "getHealth": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/compute.readonly"
          ],
          "id": "compute.regionHealthSources.getHealth",
          "parameterOrder": [
            "project",
            "region",
            "healthSource"
          ],
          "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}/getHealth",
          "httpMethod": "GET",
          "parameters": {
            "region": {
              "location": "path",
              "required": true,
              "description": "Name of the region scoping this request.",
              "type": "string",
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
            },
            "healthSource": {
              "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
              "location": "path",
              "required": true,
              "description": "Name of the HealthSource resource to get health for.",
              "type": "string"
            },
            "project": {
              "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
              "type": "string",
              "location": "path",
              "required": true,
              "description": "Name of the project scoping this request."
            }
          },
          "response": {
            "$ref": "HealthSourceHealth"
          },
          "path": "projects/{project}/regions/{region}/healthSources/{healthSource}/getHealth",
          "description": "Gets the most recent health check results for this\nregional HealthSource."
        }
      }
    }
  },
  "revision": "20261007",
  "ownerDomain": "google.com",
  "baseUrl": "https://compute.googleapis.com/compute/v1/",
  "discoveryVersion": "v1",
  "servicePath": "compute/v1/",
  "kind": "discovery#restDescription",
  "protocol": "rest",
  "id": "compute:v1",
  "endpoints": [
    {
      "description": "Regional Endpoint",
      "location": "africa-south1",
      "endpointUrl": "https://compute.africa-south1.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "location": "asia-east1",
      "endpointUrl": "https://compute.asia-east1.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://compute.asia-east2.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "asia-east2"
    },
    {
      "location": "asia-northeast1",
      "endpointUrl": "https://compute.asia-northeast1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "asia-northeast2",
      "endpointUrl": "https://compute.asia-northeast2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "asia-northeast3",
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.asia-northeast3.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://compute.asia-south1.rep.googleapis.com/",
      "location": "asia-south1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://compute.asia-south2.rep.googleapis.com/",
      "location": "asia-south2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://compute.asia-southeast1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "asia-southeast1"
    },
    {
      "description": "Regional Endpoint",
      "location": "asia-southeast2",
      "endpointUrl": "https://compute.asia-southeast2.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://compute.asia-southeast3.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "asia-southeast3"
    },
    {
      "endpointUrl": "https://compute.australia-southeast1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "australia-southeast1"
    },
    {
      "description": "Regional Endpoint",
      "location": "australia-southeast2",
      "endpointUrl": "https://compute.australia-southeast2.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.europe-central2.rep.googleapis.com/",
      "location": "europe-central2"
    },
    {
      "location": "europe-north1",
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.europe-north1.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.europe-north2.rep.googleapis.com/",
      "location": "europe-north2"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.europe-southwest1.rep.googleapis.com/",
      "location": "europe-southwest1"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.europe-west1.rep.googleapis.com/",
      "location": "europe-west1"
    },
    {
      "endpointUrl": "https://compute.europe-west10.rep.googleapis.com/",
      "location": "europe-west10",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-west12",
      "endpointUrl": "https://compute.europe-west12.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://compute.europe-west2.rep.googleapis.com/",
      "location": "europe-west2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://compute.europe-west3.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west3"
    },
    {
      "description": "Regional Endpoint",
      "location": "europe-west4",
      "endpointUrl": "https://compute.europe-west4.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.europe-west6.rep.googleapis.com/",
      "location": "europe-west6"
    },
    {
      "endpointUrl": "https://compute.europe-west8.rep.googleapis.com/",
      "location": "europe-west8",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://compute.europe-west9.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west9"
    },
    {
      "endpointUrl": "https://compute.me-central1.rep.googleapis.com/",
      "location": "me-central1",
      "description": "Regional Endpoint"
    },
    {
      "location": "me-central2",
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.me-central2.rep.googleapis.com/"
    },
    {
      "location": "me-west1",
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.me-west1.rep.googleapis.com/"
    },
    {
      "location": "northamerica-northeast1",
      "endpointUrl": "https://compute.northamerica-northeast1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://compute.northamerica-northeast2.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "northamerica-northeast2"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.northamerica-south1.rep.googleapis.com/",
      "location": "northamerica-south1"
    },
    {
      "location": "southamerica-east1",
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.southamerica-east1.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://compute.southamerica-west1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "southamerica-west1"
    },
    {
      "location": "us-central1",
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.us-central1.rep.googleapis.com/"
    },
    {
      "location": "us-east1",
      "endpointUrl": "https://compute.us-east1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://compute.us-east4.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-east4"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://compute.us-east5.rep.googleapis.com/",
      "location": "us-east5"
    },
    {
      "endpointUrl": "https://compute.us-south1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-south1"
    },
    {
      "endpointUrl": "https://compute.us-west1.rep.googleapis.com/",
      "location": "us-west1",
      "description": "Regional Endpoint"
    },
    {
      "location": "us-west2",
      "endpointUrl": "https://compute.us-west2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "description": "Regional Endpoint",
      "location": "us-west3",
      "endpointUrl": "https://compute.us-west3.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "location": "us-west4",
      "endpointUrl": "https://compute.us-west4.rep.googleapis.com/"
    }
  ],
  "mtlsRootUrl": "https://compute.mtls.googleapis.com/",
  "schemas": {
    "AcceleratorType": {
      "type": "object",
      "description": "Represents an Accelerator Type resource.\n\nGoogle Cloud Platform provides graphics processing units (accelerators) that\nyou can add to VM instances to improve or accelerate performance when working\nwith intensive workloads. For more information, readGPUs on Compute Engine.",
      "properties": {
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined, fully qualified URL for this resource."
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The type of the resource. Alwayscompute#acceleratorType for accelerator types.",
          "default": "compute#acceleratorType"
        },
        "maximumCardsPerInstance": {
          "format": "int32",
          "type": "integer",
          "description": "[Output Only] Maximum number of accelerator cards allowed per instance."
        },
        "resourceMetadata": {
          "readOnly": true,
          "$ref": "ResourceMetadata",
          "description": "Output only. Contains standard resource metadata for an AcceleratorType\nresource. It is populated for each instance of the AcceleratorType\nresource, and includes the api_version the\ninstance was retrieved through, and its canonical\nresource_type name."
        },
        "creationTimestamp": {
          "type": "string",
          "description": "[Output Only] Creation timestamp inRFC3339 text format."
        },
        "name": {
          "description": "[Output Only] Name of the resource.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "zone": {
          "description": "[Output Only] The name of the zone where the accelerator type resides,\nsuch as us-central1-a.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "type": "string"
        },
        "deprecated": {
          "description": "[Output Only] The deprecation status associated with this accelerator type.",
          "$ref": "DeprecationStatus"
        },
        "id": {
          "type": "string",
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "description": {
          "type": "string",
          "description": "[Output Only] An optional textual description of the resource."
        }
      },
      "id": "AcceleratorType"
    },
    "UpcomingMaintenance": {
      "description": "Upcoming Maintenance notification information.",
      "properties": {
        "maintenanceOnShutdown": {
          "type": "boolean",
          "description": "Indicates whether the UpcomingMaintenance will be triggered on VM shutdown."
        },
        "windowEndTime": {
          "description": "The time by which the maintenance disruption will be completed.\nThis timestamp value is in RFC3339 text format.",
          "type": "string"
        },
        "canReschedule": {
          "description": "Indicates if the maintenance can be customer triggered.",
          "type": "boolean"
        },
        "windowStartTime": {
          "type": "string",
          "description": "The current start time of the maintenance window.\nThis timestamp value is in RFC3339 text format."
        },
        "latestWindowStartTime": {
          "description": "The latest time for the planned maintenance window to start.\nThis timestamp value is in RFC3339 text format.",
          "type": "string"
        },
        "type": {
          "description": "Defines the type of maintenance.",
          "enumDescriptions": [
            "Multiple maintenance types in one window.\nThis is only intended to be used for groups.",
            "Scheduled maintenance (e.g. maintenance after uptime guarantee is\ncomplete).",
            "No type specified. Do not use this value.",
            "Unscheduled maintenance (e.g. emergency maintenance during\nuptime guarantee)."
          ],
          "enum": [
            "MULTIPLE",
            "SCHEDULED",
            "UNKNOWN_TYPE",
            "UNSCHEDULED"
          ],
          "type": "string"
        },
        "maintenanceStatus": {
          "type": "string",
          "enumDescriptions": [
            "There is ongoing maintenance on this VM.",
            "There is pending maintenance.",
            "Unknown maintenance status. Do not use this value."
          ],
          "enum": [
            "ONGOING",
            "PENDING",
            "UNKNOWN"
          ]
        },
        "maintenanceReasons": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Maintenance due to disk errors.",
              "Maintenance due to GPU errors.",
              "Maintenance due to customer reported multiple faulty hosts via R&R\nSubblock API.",
              "Maintenance due to customer reported NVLink switch failure via R&R\nSubblock API.",
              "Maintenance due to high GPU temperature.",
              "Maintenance due to GPU xid failure.",
              "Maintenance due to infrastructure errors.",
              "Maintenance due to interface errors.",
              "Maintenance due to memory errors.",
              "Maintenance due to network errors.",
              "Maintenance due to NVLink failure.",
              "Maintenance due to redundant hardware fault.",
              "Maintenance due to TPU errors.",
              "Maintenance due to infrastructure relocation.",
              "Unknown maintenance reason. Do not use this value.",
              "Maintenance due to planned network update.",
              "Maintenance due to planned update to the instance."
            ],
            "enum": [
              "FAILURE_DISK",
              "FAILURE_GPU",
              "FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED",
              "FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED",
              "FAILURE_GPU_TEMPERATURE",
              "FAILURE_GPU_XID",
              "FAILURE_INFRA",
              "FAILURE_INTERFACE",
              "FAILURE_MEMORY",
              "FAILURE_NETWORK",
              "FAILURE_NVLINK",
              "FAILURE_REDUNDANT_HARDWARE_FAULT",
              "FAILURE_TPU",
              "INFRASTRUCTURE_RELOCATION",
              "MAINTENANCE_REASON_UNKNOWN",
              "PLANNED_NETWORK_UPDATE",
              "PLANNED_UPDATE"
            ]
          },
          "description": "The reasons for the maintenance. Only valid for vms."
        }
      },
      "type": "object",
      "id": "UpcomingMaintenance"
    },
    "PacketMirroringMirroredResourceInfo": {
      "id": "PacketMirroringMirroredResourceInfo",
      "properties": {
        "tags": {
          "description": "A set of mirrored tags. Traffic from/to all VM instances that have one or\nmore of these tags will be mirrored.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "subnetworks": {
          "items": {
            "$ref": "PacketMirroringMirroredResourceInfoSubnetInfo"
          },
          "type": "array",
          "description": "A set of subnetworks for which traffic from/to all VM instances will be\nmirrored. They must live in the same region as this packetMirroring.\n\nYou may specify a maximum of 5 subnetworks."
        },
        "instances": {
          "description": "A set of virtual machine instances that are being mirrored.\nThey must live in zones contained in the same region as this\npacketMirroring.\n\nNote that this config will apply only to those network interfaces of the\nInstances that belong to the network specified in this packetMirroring.\n\nYou may specify a maximum of 50 Instances.",
          "items": {
            "$ref": "PacketMirroringMirroredResourceInfoInstanceInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "HealthAggregationPolicy": {
      "type": "object",
      "id": "HealthAggregationPolicy",
      "properties": {
        "name": {
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the region where the health aggregation policy\nresides. This field applies only to the regional resource. You must specify\nthis field as part of the HTTP request URL. It is not settable as a field\nin the request body.",
          "readOnly": true
        },
        "minHealthyThreshold": {
          "type": "integer",
          "description": "Can only be set if the policyType field isBACKEND_SERVICE_POLICY. Specifies the minimum number of\nhealthy endpoints required in order to consider the aggregated health\nresult HEALTHY. Defaults to 1. Must be positive. Not\napplicable if the policyType field isDNB_PUBLIC_IP_POLICY. Can be mutated. This field is optional,\nand will be set to the default if unspecified. Note that both this\nthreshold and healthyPercentThreshold must be satisfied in\norder for HEALTHY to be the aggregated result. \"Endpoints\" refers to\nnetwork endpoints within a Network Endpoint Group or instances within an\nInstance Group.",
          "format": "uint32"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "policyType": {
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "BACKEND_SERVICE_POLICY",
            "DNS_PUBLIC_IP_POLICY"
          ],
          "description": "Specifies the type of the healthAggregationPolicy. The only allowed value\nfor global resources is DNS_PUBLIC_IP_POLICY. The only allowed\nvalue for regional resources is BACKEND_SERVICE_POLICY. Must\nbe specified when the healthAggregationPolicy is created, and cannot be\nmutated.",
          "type": "string"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#healthAggregationPolicy for health aggregation\npolicies.",
          "default": "compute#healthAggregationPolicy",
          "readOnly": true,
          "type": "string"
        },
        "fingerprint": {
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a HealthAggregationPolicy. An up-to-date fingerprint\nmust be provided in order to patch the HealthAggregationPolicy; Otherwise,\nthe request will fail with error 412 conditionNotMet. To see\nthe latest fingerprint, make a get() request to retrieve the\nHealthAggregationPolicy.",
          "format": "byte",
          "type": "string"
        },
        "selfLinkWithId": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL with id for the resource.",
          "type": "string"
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "healthyPercentThreshold": {
          "format": "uint32",
          "type": "integer",
          "description": "Can only be set if the policyType field isBACKEND_SERVICE_POLICY. Specifies the threshold (as a\npercentage) of healthy endpoints required in order to consider the\naggregated health result HEALTHY. Defaults to 60. Must be in\nrange [0, 100]. Not applicable if the policyType field isDNB_PUBLIC_IP_POLICY. Can be mutated. This field is optional,\nand will be set to the default if unspecified. Note that both this\nthreshold and minHealthyThreshold must be satisfied in order\nfor HEALTHY to be the aggregated result. \"Endpoints\" refers to network\nendpoints within a Network Endpoint Group or instances within an Instance\nGroup."
        }
      },
      "description": "Represents a health aggregation policy.\n\nA health aggregation policy resource defines a policy to aggregate health.\n\nFor more information, see\nHealth checks overview."
    },
    "HttpHealthCheck": {
      "type": "object",
      "description": "Represents a legacy HTTP Health Check resource.\n\nLegacy HTTP health checks are now only required by target pool-based network\nload balancers. For all other load balancers, including backend service-based\nnetwork load balancers, and for managed instance group auto-healing, you must\nuse modern (non-legacy) health checks.\n\nFor more information, seeHealth checks\noverview.",
      "id": "HttpHealthCheck",
      "properties": {
        "id": {
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "unhealthyThreshold": {
          "description": "A so-far healthy instance will be marked unhealthy after this\nmany consecutive failures. The default value is 2.",
          "type": "integer",
          "format": "int32"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#httpHealthCheck",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#httpHealthCheck for HTTP health checks."
        },
        "requestPath": {
          "type": "string",
          "description": "The request path of the HTTP health check request. The default value is/. This field does not support query\nparameters. Must comply withRFC3986."
        },
        "host": {
          "description": "The value of the host header in the HTTP health check request. If left\nempty (default value), the public IP on behalf of which this health check\nis performed will be used.",
          "type": "string"
        },
        "healthyThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "A so-far unhealthy instance will be marked healthy after this\nmany consecutive successes. The default value is 2."
        },
        "creationTimestamp": {
          "type": "string",
          "description": "[Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "checkIntervalSec": {
          "format": "int32",
          "type": "integer",
          "description": "How often (in seconds) to send a health check. The default value is5 seconds."
        },
        "port": {
          "format": "int32",
          "type": "integer",
          "description": "The TCP port number for the HTTP health check request. The default value is80."
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "timeoutSec": {
          "format": "int32",
          "description": "How long (in seconds) to wait before claiming failure. The default value is5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.",
          "type": "integer"
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        }
      }
    },
    "FutureReservationStatus": {
      "properties": {
        "exapoolProvisionedCapacityGb": {
          "description": "Output only. Exapool provisioned capacities for each SKU type.",
          "readOnly": true,
          "$ref": "StoragePoolExapoolProvisionedCapacityGb"
        },
        "specificSkuProperties": {
          "$ref": "FutureReservationStatusSpecificSKUProperties"
        },
        "autoCreatedReservations": {
          "description": "Output only. Fully qualified urls of the automatically created reservations at\nstart_time.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "fulfilledCount": {
          "description": "Output only. This count indicates the fulfilled capacity so far. This is set during\n\"PROVISIONING\" state. This count also includes capacity delivered as part\nof existing matching reservations.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "existingMatchingUsageInfo": {
          "$ref": "FutureReservationStatusExistingMatchingUsageInfo",
          "description": "Output only. [Output Only] Represents the existing matching usage for the future\nreservation.",
          "readOnly": true
        },
        "lockTime": {
          "readOnly": true,
          "description": "Output only. Time when Future Reservation would become LOCKED, after which no\nmodifications to Future Reservation will be allowed. Applicable only\nafter the Future Reservation is in the APPROVED state. The lock_time is\nan RFC3339 string. The procurement_status will transition to PROCURING\nstate at this time.",
          "type": "string"
        },
        "lastKnownGoodState": {
          "readOnly": true,
          "$ref": "FutureReservationStatusLastKnownGoodState",
          "description": "Output only. [Output Only] This field represents the future reservation before an\namendment was requested. If the amendment is declined, the Future\nReservation will be reverted to the last known good state. The last known\ngood state is not set when updating a future reservation whose\nProcurement Status is DRAFTING."
        },
        "amendmentStatus": {
          "readOnly": true,
          "description": "Output only. [Output Only] The current status of the requested amendment.",
          "type": "string",
          "enum": [
            "AMENDMENT_APPROVED",
            "AMENDMENT_DECLINED",
            "AMENDMENT_IN_REVIEW",
            "AMENDMENT_STATUS_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "The requested amendment to the Future Resevation has been approved and\napplied by GCP.",
            "The requested amendment to the Future Reservation has been declined by\nGCP and the original state was restored.",
            "The requested amendment to the Future Reservation is currently being\nreviewd by GCP.",
            ""
          ]
        },
        "procurementStatus": {
          "readOnly": true,
          "enum": [
            "APPROVED",
            "CANCELLED",
            "COMMITTED",
            "DECLINED",
            "DRAFTING",
            "FAILED",
            "FAILED_PARTIALLY_FULFILLED",
            "FULFILLED",
            "PENDING_AMENDMENT_APPROVAL",
            "PENDING_APPROVAL",
            "PROCUREMENT_STATUS_UNSPECIFIED",
            "PROCURING",
            "PROVISIONING"
          ],
          "enumDescriptions": [
            "Future reservation is approved by GCP.",
            "Future reservation is cancelled by the customer.",
            "Future reservation is committed by the customer.",
            "Future reservation is rejected by GCP.",
            "Related status for PlanningStatus.Draft. Transitions to\nPENDING_APPROVAL upon user submitting FR.",
            "Future reservation failed. No additional reservations were provided.",
            "Future reservation is partially fulfilled. Additional reservations were\nprovided but did not reach total_count reserved instance slots.",
            "Future reservation is fulfilled completely.",
            "An Amendment to the Future Reservation has been requested. If the\nAmendment is declined, the Future Reservation will be restored to the\nlast known good state.",
            "Future reservation is pending approval by GCP.",
            "",
            "Future reservation is being procured by GCP. Beyond this point, Future\nreservation is locked and no further modifications are allowed.",
            "Future reservation capacity is being provisioned. This state will be\nentered after start_time, while reservations are being created to\nprovide total_count reserved instance slots. This state will not\npersist past start_time + 24h."
          ],
          "description": "Output only. Current state of this Future Reservation",
          "type": "string"
        },
        "storagePoolProvisionedCapacity": {
          "description": "Output only. Storage pool provisioned capacities for each SKU type.",
          "readOnly": true,
          "$ref": "FutureReservationStoragePoolProvisionedCapacity"
        }
      },
      "description": "[Output only] Represents status related to the future reservation.",
      "id": "FutureReservationStatus",
      "type": "object"
    },
    "InterconnectsGetMacsecConfigResponse": {
      "id": "InterconnectsGetMacsecConfigResponse",
      "description": "Response for the InterconnectsGetMacsecConfigRequest.",
      "type": "object",
      "properties": {
        "result": {
          "$ref": "InterconnectMacsecConfig"
        },
        "etag": {
          "type": "string",
          "description": "end_interface: MixerGetResponseWithEtagBuilder"
        }
      }
    },
    "WafExpressionSet": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Google specified expression set ID. The format should be:\n- E.g. XSS-20170329\nrequired"
        },
        "aliases": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "A list of alternate IDs. The format should be:\n- E.g. XSS-stable\nGeneric suffix like \"stable\" is particularly useful if a policy\nlikes to avail newer set of expressions without having to change\nthe policy.\nA given alias name can't be used for more than one entity set."
        },
        "expressions": {
          "type": "array",
          "items": {
            "$ref": "WafExpressionSetExpression"
          },
          "description": "List of available expressions."
        }
      },
      "id": "WafExpressionSet"
    },
    "SecurityPolicyAdaptiveProtectionConfig": {
      "id": "SecurityPolicyAdaptiveProtectionConfig",
      "type": "object",
      "properties": {
        "layer7DdosDefenseConfig": {
          "description": "If set to true, enables Cloud Armor Machine Learning.",
          "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig"
        }
      },
      "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP)."
    },
    "TargetVpnGatewayList": {
      "type": "object",
      "description": "Contains a list of TargetVpnGateway resources.",
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetVpnGateway for target VPN gateways.",
          "default": "compute#targetVpnGatewayList",
          "type": "string",
          "readOnly": true
        },
        "items": {
          "items": {
            "$ref": "TargetVpnGateway"
          },
          "type": "array",
          "description": "A list of TargetVpnGateway resources."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        }
      },
      "id": "TargetVpnGatewayList"
    },
    "InstanceReference": {
      "properties": {
        "instance": {
          "description": "The URL for a specific instance.\n@required compute.instancegroups.addInstances/removeInstances",
          "type": "string"
        }
      },
      "id": "InstanceReference",
      "type": "object"
    },
    "NatIpInfoResponse": {
      "properties": {
        "result": {
          "items": {
            "$ref": "NatIpInfo"
          },
          "description": "[Output Only] A list of NAT IP information.",
          "type": "array"
        }
      },
      "id": "NatIpInfoResponse",
      "type": "object"
    },
    "RegionDisksStartAsyncReplicationRequest": {
      "type": "object",
      "id": "RegionDisksStartAsyncReplicationRequest",
      "properties": {
        "asyncSecondaryDisk": {
          "description": "The secondary disk to start asynchronous replication to.\nYou can provide this as a partial or full URL to the resource. For example,\nthe following are valid values:\n   \n   \n     - \n       https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n     \n     - \n       https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n     \n     - \n       projects/project/zones/zone/disks/disk\n     \n     - \n       projects/project/regions/region/disks/disk\n     \n     - \n       zones/zone/disks/disk\n     \n     - \n       regions/region/disks/disk",
          "type": "string"
        }
      }
    },
    "BackendBucketList": {
      "id": "BackendBucketList",
      "description": "Contains a list of BackendBucket resources.",
      "properties": {
        "items": {
          "items": {
            "$ref": "BackendBucket"
          },
          "type": "array",
          "description": "A list of BackendBucket resources."
        },
        "kind": {
          "description": "Output only. Type of resource.",
          "readOnly": true,
          "type": "string",
          "default": "compute#backendBucketList"
        },
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        }
      },
      "type": "object"
    },
    "RiskDetails": {
      "description": "Detailed insights and metrics about a detected reliability risk.",
      "type": "object",
      "properties": {
        "severity": {
          "enumDescriptions": [
            "Critical severity.",
            "High severity.",
            "Low severity.",
            "Medium severity.",
            "No severity specified. The default value."
          ],
          "description": "The severity of the risk.",
          "enum": [
            "CRITICAL",
            "HIGH",
            "LOW",
            "MEDIUM",
            "SEVERITY_UNSPECIFIED"
          ],
          "type": "string"
        },
        "globalDnsInsight": {
          "$ref": "RiskDetailsGlobalDnsInsight",
          "description": "Insight details for global DNS risk."
        },
        "lastUpdateTimestamp": {
          "type": "string",
          "format": "google-datetime",
          "description": "The last time the risk was updated."
        },
        "type": {
          "type": "string",
          "enum": [
            "GLOBAL_DNS",
            "RISK_TYPE_UNSPECIFIED"
          ],
          "description": "The type of risk.",
          "enumDescriptions": [
            "Risk type related to global DNS.",
            "Default value. This value is unused."
          ]
        },
        "duration": {
          "format": "google-duration",
          "description": "The duration of the risk since it was detected.",
          "type": "string"
        }
      },
      "id": "RiskDetails"
    },
    "AttachedDisk": {
      "properties": {
        "deviceName": {
          "type": "string",
          "description": "Specifies a unique device name of your choice that is reflected into the/dev/disk/by-id/google-* tree of a Linux operating system\nrunning within the instance. This name can be used to reference the device\nfor mounting, resizing, and so on, from within the instance.\n\nIf not specified, the server chooses a default device name to apply to this\ndisk, in the form persistent-disk-x, where x is a number\nassigned by Google Compute Engine. This field is only applicable for\npersistent disks."
        },
        "kind": {
          "default": "compute#attachedDisk",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#attachedDisk for attached disks.",
          "type": "string",
          "readOnly": true
        },
        "index": {
          "type": "integer",
          "format": "int32",
          "readOnly": true,
          "description": "Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the\nboot disk. If you have many disks attached to an instance, each\ndisk would have a unique index number."
        },
        "shieldedInstanceInitialState": {
          "$ref": "InitialStateConfig",
          "description": "Output only. [Output Only] shielded vm initial state stored on disk",
          "readOnly": true
        },
        "diskEncryptionKey": {
          "description": "Encrypts or decrypts a disk using acustomer-supplied\nencryption key.\n\nIf you are creating a new disk, this field encrypts the new disk using\nan encryption key that you provide. If you are attaching an existing\ndisk that is already encrypted, this field decrypts the disk using\nthe customer-supplied encryption key.\n\nIf you encrypt a disk using a customer-supplied key, you must provide the\nsame key again when you attempt to use this resource at a later time. For\nexample, you must provide the key when you create a snapshot or an image\nfrom the disk or when you attach the disk to a virtual machine instance.\n\nIf you do not provide an encryption key, then the disk will be encrypted\nusing an automatically generated key and you do not need to provide a key\nto use the disk later.\n\nNote:\n\nInstance templates do not storecustomer-supplied\nencryption keys, so you cannot use your own keys to encrypt disks in amanaged instance group.\n\nYou cannot create VMs that have disks with customer-supplied keys using\nthe bulk\ninsert method.",
          "$ref": "CustomerEncryptionKey"
        },
        "type": {
          "enum": [
            "PERSISTENT",
            "SCRATCH"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "description": "Specifies the type of the disk, either SCRATCH orPERSISTENT. If not specified, the default isPERSISTENT."
        },
        "licenses": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. [Output Only] Any valid publicly visible licenses.",
          "readOnly": true
        },
        "guestOsFeatures": {
          "type": "array",
          "description": "A list of features to enable on the guest operating system. Applicable\nonly for bootable images. Read\nEnabling guest operating system features to see a list of available\noptions.",
          "items": {
            "$ref": "GuestOsFeature"
          }
        },
        "interface": {
          "enum": [
            "NVME",
            "SCSI"
          ],
          "description": "Specifies the disk interface to use for attaching this disk, which is\neither SCSI or NVME. For most machine types, the\ndefault is SCSI. Local SSDs can use either NVME or SCSI.\nIn certain configurations, persistent disks can use NVMe. For more\ninformation, seeAbout\npersistent disks.",
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        },
        "boot": {
          "type": "boolean",
          "description": "Indicates that this is a boot disk. The virtual machine will use the first\npartition of the disk for its root filesystem."
        },
        "source": {
          "description": "Specifies a valid partial or full URL to an existing Persistent Disk\nresource. When creating a new instance boot disk, one ofinitializeParams.sourceImage orinitializeParams.sourceSnapshot or disks.source\nis required.\n\nIf desired, you can also attach existing non-root persistent disks using\nthis property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name for zonal disk,\nand the URL for regional disk.",
          "type": "string"
        },
        "forceAttach": {
          "type": "boolean",
          "description": "[Input Only] Whether to force attach the regional disk even if it's\ncurrently attached to another instance. If you try to force attach a zonal\ndisk to an instance, you will receive an error."
        },
        "architecture": {
          "description": "Output only. [Output Only] The architecture of the attached disk. Valid values are ARM64\nor X86_64.",
          "readOnly": true,
          "enum": [
            "ARCHITECTURE_UNSPECIFIED",
            "ARM64",
            "X86_64"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value indicating Architecture is not set.",
            "Machines with architecture ARM64",
            "Machines with architecture X86_64"
          ]
        },
        "diskSizeGb": {
          "type": "string",
          "format": "int64",
          "description": "The size of the disk in GB."
        },
        "mode": {
          "enum": [
            "READ_ONLY",
            "READ_WRITE"
          ],
          "enumDescriptions": [
            "Attaches this disk in read-only mode. Multiple virtual machines can use\na disk in read-only mode at a time.",
            "*[Default]* Attaches this disk in read-write mode. Only one\nvirtual machine at a time can be attached to a disk in read-write mode."
          ],
          "description": "The mode in which to attach this disk, either READ_WRITE orREAD_ONLY. If not specified, the default is to attach the disk\nin READ_WRITE mode.",
          "type": "string"
        },
        "initializeParams": {
          "$ref": "AttachedDiskInitializeParams",
          "description": "[Input Only] Specifies the parameters for a new disk that will be created\nalongside the new instance. Use initialization parameters to create boot\ndisks or local SSDs attached to the new instance.\n\nThis property is mutually exclusive with the source property;\nyou can only define one or the other, but not both."
        },
        "autoDelete": {
          "type": "boolean",
          "description": "Specifies whether the disk will be auto-deleted when the instance is\ndeleted (but not when the disk is detached from the instance)."
        },
        "savedState": {
          "enumDescriptions": [
            "*[Default]* Disk state has not been preserved.",
            "Disk state has been preserved."
          ],
          "enum": [
            "DISK_SAVED_STATE_UNSPECIFIED",
            "PRESERVED"
          ],
          "readOnly": true,
          "description": "Output only. For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this\nfield is set to PRESERVED if the LocalSSD data has been saved\nto a persistent location by customer request.  (see the\ndiscard_local_ssd option on Stop/Suspend).\nRead-only in the api.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "An instance-attached disk resource.",
      "id": "AttachedDisk"
    },
    "NetworkFirewallPolicyAggregatedList": {
      "id": "NetworkFirewallPolicyAggregatedList",
      "type": "object",
      "properties": {
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "unreachables": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "description": "A list of FirewallPoliciesScopedList resources.",
          "additionalProperties": {
            "$ref": "FirewallPoliciesScopedList",
            "description": "Name of the scope containing this set of addresses."
          },
          "type": "object"
        },
        "kind": {
          "default": "compute#networkFirewallPolicyAggregatedList",
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#networkFirewallPoliciesAggregatedList for lists of\nnetwork firewall policies.",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      }
    },
    "RegionInstanceGroupManagerUpdateInstanceConfigReq": {
      "description": "RegionInstanceGroupManagers.updatePerInstanceConfigs",
      "type": "object",
      "properties": {
        "perInstanceConfigs": {
          "items": {
            "$ref": "PerInstanceConfig"
          },
          "type": "array",
          "description": "The list of per-instance configurations to insert or patch on this managed\ninstance group."
        }
      },
      "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
    },
    "NatIpInfoNatIpInfoMapping": {
      "type": "object",
      "id": "NatIpInfoNatIpInfoMapping",
      "description": "Contains information of a NAT IP.",
      "properties": {
        "natIp": {
          "type": "string",
          "description": "Output only. NAT IP address. For example: 203.0.113.11.",
          "readOnly": true
        },
        "usage": {
          "enum": [
            "IN_USE",
            "UNUSED"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Output only. Specifies whether NAT IP is currently serving at least one endpoint or\nnot.",
          "type": "string"
        },
        "mode": {
          "readOnly": true,
          "enum": [
            "AUTO",
            "MANUAL"
          ],
          "type": "string",
          "description": "Output only. Specifies whether NAT IP is auto or manual.",
          "enumDescriptions": [
            "",
            ""
          ]
        }
      }
    },
    "XpnHostList": {
      "id": "XpnHostList",
      "type": "object",
      "properties": {
        "kind": {
          "default": "compute#xpnHostList",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Always compute#xpnHostList for\nlists of shared VPC hosts."
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              }
            }
          }
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "items": {
          "description": "[Output Only] A list of shared VPC host project URLs.",
          "items": {
            "$ref": "Project"
          },
          "type": "array"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      }
    },
    "ServiceAttachmentConnectedEndpoint": {
      "description": "[Output Only] A connection connected to this service attachment.",
      "type": "object",
      "properties": {
        "endpointWithId": {
          "description": "The url of a connected endpoint with resource id.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "The status of a connected endpoint to this service attachment.",
          "enumDescriptions": [
            "The connection has been accepted by the producer.",
            "The connection has been closed by the producer.",
            "The connection has been accepted by the producer, but the producer\nneeds to take further action before the forwarding rule can serve\ntraffic.",
            "The connection is pending acceptance by the producer.",
            "The consumer is still connected but not using the connection.",
            ""
          ],
          "enum": [
            "ACCEPTED",
            "CLOSED",
            "NEEDS_ATTENTION",
            "PENDING",
            "REJECTED",
            "STATUS_UNSPECIFIED"
          ]
        },
        "natIps": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "NAT IPs of the connected PSC endpoint and those of other endpoints\npropagated from it."
        },
        "endpoint": {
          "type": "string",
          "description": "The url of a connected endpoint."
        },
        "propagatedConnectionCount": {
          "type": "integer",
          "description": "The number of consumer Network Connectivity Center spokes that the\nconnected Private Service Connect endpoint has propagated to.",
          "format": "uint32"
        },
        "pscConnectionId": {
          "type": "string",
          "format": "uint64",
          "description": "The PSC connection id of the connected endpoint."
        },
        "consumerNetwork": {
          "description": "The url of the consumer network.",
          "type": "string"
        }
      },
      "id": "ServiceAttachmentConnectedEndpoint"
    },
    "HealthSourcesGetHealthResponseSourceInfoBackendInfo": {
      "properties": {
        "endpointCount": {
          "type": "integer",
          "format": "int32",
          "description": "Total number of endpoints when determining the health of the\nregionHealthSource."
        },
        "group": {
          "type": "string",
          "description": "Fully qualified URL of an instance group or network endpoint group\nbehind the source backend service."
        },
        "healthyEndpointCount": {
          "format": "int32",
          "type": "integer",
          "description": "Number of endpoints considered healthy when determining health of the\nregionHealthSource."
        }
      },
      "id": "HealthSourcesGetHealthResponseSourceInfoBackendInfo",
      "type": "object"
    },
    "WireGroup": {
      "type": "object",
      "properties": {
        "wireProperties": {
          "$ref": "WireProperties",
          "description": "Properties for all wires in the wire group."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "type": "string"
        },
        "endpoints": {
          "additionalProperties": {
            "$ref": "WireGroupEndpoint"
          },
          "type": "object",
          "description": "A map that contains the logical endpoints of the wire group. Specify\nkey-value pairs for the map as follows:\n   \n   - Key: an RFC1035 user-specified label.\n   - Value: an Endpoint object."
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.",
          "readOnly": true,
          "format": "uint64",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#wireGroups for wire groups.",
          "default": "compute#wireGroup"
        },
        "adminEnabled": {
          "description": "Indicates whether the wires in the wire group are enabled. When false, the\nwires in the wire group are disabled. When true and when\nthere is simultaneously no wire-specific override of `adminEnabled` to\nfalse, a given wire is enabled. Defaults to true.",
          "type": "boolean"
        },
        "reconciling": {
          "description": "Output only. [Output Only] Indicates whether there are wire changes yet to be processed.",
          "type": "boolean",
          "readOnly": true
        },
        "topology": {
          "description": "Output only. Topology details for the wire group configuration.",
          "readOnly": true,
          "$ref": "WireGroupTopology"
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "wires": {
          "items": {
            "$ref": "Wire"
          },
          "readOnly": true,
          "description": "Output only. The single/redundant wire(s) managed by the wire group.",
          "type": "array"
        },
        "description": {
          "type": "string",
          "description": "An optional description of the wire group."
        }
      },
      "id": "WireGroup",
      "description": "A resource that represents a group of redundant wires."
    },
    "HTTP2HealthCheck": {
      "properties": {
        "response": {
          "type": "string",
          "description": "Creates a content-based HTTP/2 health check. In addition to the required\nHTTP 200 (OK) status code, you can configure the health check to pass only\nwhen the backend sends this specific ASCII response string within the first\n1024 bytes of the HTTP response body. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http"
        },
        "portSpecification": {
          "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools.  Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group.  For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.",
          "type": "string",
          "enumDescriptions": [
            "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.",
            "Not supported.",
            "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports."
          ],
          "enum": [
            "USE_FIXED_PORT",
            "USE_NAMED_PORT",
            "USE_SERVING_PORT"
          ]
        },
        "proxyHeader": {
          "type": "string",
          "enum": [
            "NONE",
            "PROXY_V1"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE."
        },
        "requestPath": {
          "type": "string",
          "description": "The request path of the HTTP/2 health check request. The default value is/. Must comply withRFC3986."
        },
        "portName": {
          "type": "string",
          "description": "Not supported."
        },
        "host": {
          "type": "string",
          "description": "The value of the host header in the HTTP/2 health check request. If left\nempty (default value), the host header is set to the destination IP address\nto which health check packets are sent. The destination IP address depends\non the type of load balancer. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest"
        },
        "port": {
          "format": "int32",
          "type": "integer",
          "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 443. Valid values are 1 through65535."
        }
      },
      "id": "HTTP2HealthCheck",
      "type": "object"
    },
    "BackendServiceAggregatedList": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Type of resource.",
          "default": "compute#backendServiceAggregatedList"
        },
        "items": {
          "type": "object",
          "description": "A list of BackendServicesScopedList resources.",
          "additionalProperties": {
            "description": "Name of the scope containing this set of BackendServices.",
            "$ref": "BackendServicesScopedList"
          }
        }
      },
      "id": "BackendServiceAggregatedList",
      "description": "Contains a list of BackendServicesScopedList."
    },
    "RouterBgpPeer": {
      "type": "object",
      "id": "RouterBgpPeer",
      "properties": {
        "advertisedIpRanges": {
          "description": "User-specified list of individual IP ranges to advertise in custom mode.\nThis field can only be populated if advertise_mode is CUSTOM and\noverrides the list defined for the router (in the \"bgp\" message).\nThese IP ranges are advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.",
          "items": {
            "$ref": "RouterAdvertisedIpRange"
          },
          "type": "array"
        },
        "ipAddress": {
          "description": "IP address of the interface inside Google Cloud Platform.",
          "type": "string"
        },
        "bfd": {
          "description": "BFD configuration for the BGP peering.",
          "$ref": "RouterBgpPeerBfd"
        },
        "customLearnedIpRanges": {
          "items": {
            "$ref": "RouterBgpPeerCustomLearnedIpRange"
          },
          "type": "array",
          "description": "A list of user-defined custom learned route IP address ranges for a BGP\nsession."
        },
        "enableIpv4": {
          "type": "boolean",
          "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if\nthe peerIpAddress is version 4."
        },
        "exportPolicies": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "List of export policies applied to this peer, in the order they must be\nevaluated. The name must correspond to an existing policy that has\nROUTE_POLICY_TYPE_EXPORT type."
        },
        "ipv4NexthopAddress": {
          "description": "IPv4 address of the interface inside Google Cloud Platform.",
          "type": "string"
        },
        "routerApplianceInstance": {
          "type": "string",
          "description": "URI of the VM instance that is used as third-party router\nappliances such as Next Gen Firewalls, Virtual Routers, or Router\nAppliances. The VM instance must be located in zones contained in the\nsame region as this Cloud Router.\nThe VM instance is the peer side of the BGP session."
        },
        "enableIpv6": {
          "type": "boolean",
          "description": "Enable IPv6 traffic over BGP Peer. It is enabled by default if the\npeerIpAddress is version 6."
        },
        "customLearnedRoutePriority": {
          "format": "int32",
          "description": "The user-defined custom learned route priority for a BGP session. This\nvalue is applied to all custom learned route ranges for the session.\nYou can choose a value from `0` to `65335`. If you don't provide a\nvalue, Google Cloud assigns a priority of `100` to the ranges.",
          "type": "integer"
        },
        "ipv6NexthopAddress": {
          "description": "IPv6 address of the interface inside Google Cloud Platform.",
          "type": "string"
        },
        "peerIpv6NexthopAddress": {
          "description": "IPv6 address of the BGP interface outside Google Cloud Platform.",
          "type": "string"
        },
        "enable": {
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "FALSE",
            "TRUE"
          ],
          "description": "The status of the BGP peer connection.\n\n\nIf set to FALSE, any active session with the peer is terminated and\nall associated routing information is removed. If set to TRUE, the\npeer connection can be established with routing information. The default\nis TRUE.",
          "type": "string"
        },
        "md5AuthenticationKeyName": {
          "description": "Present if MD5 authentication is enabled for the peering. Must be the\nname of one of the entries in the Router.md5_authentication_keys. The\nfield must comply with RFC1035.",
          "type": "string"
        },
        "advertisedRoutePriority": {
          "format": "uint32",
          "type": "integer",
          "description": "The priority of routes advertised to this BGP peer. Where there is more\nthan one matching route of maximum length, the routes with the lowest\npriority value win."
        },
        "managementType": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The BGP peer is automatically created for PARTNER type\nInterconnectAttachment; Google will automatically create/delete\nthis BGP peer when the PARTNER InterconnectAttachment is\ncreated/deleted, and Google will update the ipAddress and\npeerIpAddress when the PARTNER InterconnectAttachment is provisioned.\nThis type of BGP peer cannot be created or deleted, but can be\nmodified for all fields except for name, ipAddress and peerIpAddress.",
            "Default value, the BGP peer is manually created and managed by user."
          ],
          "description": "Output only. [Output Only] The resource that configures and manages this BGP peer.\n   \n   -  MANAGED_BY_USER is the default value and can be managed by you\n   or other users\n   - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed\n   by Cloud Interconnect, specifically by an InterconnectAttachment of type\n   PARTNER. Google automatically creates, updates, and deletes this type of\n   BGP peer when the PARTNER InterconnectAttachment is created, updated,\n   or deleted.",
          "enum": [
            "MANAGED_BY_ATTACHMENT",
            "MANAGED_BY_USER"
          ]
        },
        "advertiseMode": {
          "description": "User-specified flag to indicate which mode to use for advertisement.",
          "enum": [
            "CUSTOM",
            "DEFAULT"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        },
        "peerIpv4NexthopAddress": {
          "description": "IPv4 address of the BGP interface outside Google Cloud Platform.",
          "type": "string"
        },
        "peerIpAddress": {
          "type": "string",
          "description": "IP address of the BGP interface outside Google Cloud Platform."
        },
        "name": {
          "description": "Name of this BGP peer.\nThe name must be 1-63 characters long, and comply withRFC1035. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a\nlowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.",
          "annotations": {
            "required": [
              "compute.routers.insert"
            ]
          },
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "advertisedGroups": {
          "type": "array",
          "description": "User-specified list of prefix groups to advertise in custom mode,\nwhich currently supports the following option:\n   \n   - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This\n   excludes any routes learned for subnets that use\n   VPC Network Peering.\n\n\nNote that this field can only be populated if advertise_mode is CUSTOM\nand overrides the list defined for the router (in the \"bgp\" message).\nThese groups are advertised in addition to any specified prefixes.\nLeave this field blank to advertise no custom groups.",
          "items": {
            "enum": [
              "ALL_SUBNETS"
            ],
            "type": "string",
            "enumDescriptions": [
              "Advertise all available subnets (including peer VPC subnets)."
            ]
          }
        },
        "peerAsn": {
          "format": "uint32",
          "type": "integer",
          "annotations": {
            "required": [
              "compute.routers.insert"
            ]
          },
          "description": "Peer BGP Autonomous System Number (ASN). Each BGP interface may use\na different value."
        },
        "interfaceName": {
          "description": "Name of the interface the BGP peer is associated with.",
          "type": "string"
        },
        "importPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of import policies applied to this peer, in the order they must be\nevaluated. The name must correspond to an existing policy that has\nROUTE_POLICY_TYPE_IMPORT type."
        }
      }
    },
    "SubnetworkList": {
      "description": "Contains a list of Subnetwork resources.",
      "type": "object",
      "properties": {
        "kind": {
          "default": "compute#subnetworkList",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Always compute#subnetworkList\nfor lists of subnetworks.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "warning": {
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "items": {
          "items": {
            "$ref": "Subnetwork"
          },
          "type": "array",
          "description": "A list of Subnetwork resources."
        }
      },
      "id": "SubnetworkList"
    },
    "TargetSslProxyList": {
      "description": "Contains a list of TargetSslProxy resources.",
      "type": "object",
      "id": "TargetSslProxyList",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "TargetSslProxy"
          },
          "description": "A list of TargetSslProxy resources."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#targetSslProxyList",
          "description": "Output only. Type of resource."
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        }
      }
    },
    "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck": {
      "id": "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck",
      "properties": {
        "error": {
          "type": "object",
          "description": "Output only. Errors encountered during bulk instance operation.",
          "properties": {
            "errors": {
              "description": "[Output Only] The array of errors encountered while processing this\noperation.",
              "items": {
                "type": "object",
                "properties": {
                  "message": {
                    "type": "string",
                    "description": "[Output Only] An optional, human-readable error message."
                  },
                  "errorDetails": {
                    "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.",
                    "type": "array",
                    "items": {
                      "description": "Container for structured error details providing additional context\nspecific to the encountered error code.",
                      "properties": {
                        "quotaInfo": {
                          "$ref": "QuotaExceededInfo",
                          "description": "Details about quota limits and metrics when a quota is exceeded."
                        },
                        "localizedMessage": {
                          "$ref": "LocalizedMessage",
                          "description": "A localized human-readable error message intended for end users."
                        },
                        "help": {
                          "$ref": "Help",
                          "description": "Links and information to help the user resolve the error."
                        },
                        "errorInfo": {
                          "description": "Error information containing structured domain, reason, and metadata.",
                          "$ref": "ErrorInfo"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "code": {
                    "description": "[Output Only] The error type identifier for this error.",
                    "type": "string"
                  },
                  "location": {
                    "type": "string",
                    "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional."
                  }
                },
                "description": "Represents a single error encountered during the processing of an\noperation."
              },
              "type": "array"
            }
          },
          "readOnly": true
        },
        "timestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Timestamp of the last progress check of bulk instance\noperation. Timestamp is in RFC3339 text format.",
          "format": "google-datetime"
        }
      },
      "type": "object"
    },
    "InstancesSetServiceAccountRequest": {
      "id": "InstancesSetServiceAccountRequest",
      "properties": {
        "email": {
          "type": "string",
          "description": "Email address of the service account."
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of scopes to be made available for this service account."
        }
      },
      "type": "object"
    },
    "UsableSubnetworkSecondaryRange": {
      "id": "UsableSubnetworkSecondaryRange",
      "description": "Secondary IP range of a usable subnetwork.",
      "properties": {
        "rangeName": {
          "type": "string",
          "description": "The name associated with this subnetwork secondary range, used when adding\nan alias IP range to a VM instance.\nThe name must be 1-63 characters long, and comply withRFC1035.\nThe name must be unique within the subnetwork."
        },
        "ipCidrRange": {
          "description": "The range of IP addresses belonging to this subnetwork secondary range.\nCan be Ipv4 or Ipv6 range.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "HealthSourcesGetHealthResponseSourceInfo": {
      "type": "object",
      "properties": {
        "forwardingRule": {
          "description": "Fully qualified URL of the forwarding rule associated with the source\nresource if it is a L4ILB backend service.",
          "type": "string"
        },
        "source": {
          "description": "Fully qualified URL of the associated source resource. This is always a\nbackend service URL.",
          "type": "string"
        },
        "backends": {
          "description": "Represents an instance group or network endpoint group behind the source\nbackend service. Only used if the sourceType of the regionHealthSource\nis BACKEND_SERVICE.",
          "items": {
            "$ref": "HealthSourcesGetHealthResponseSourceInfoBackendInfo"
          },
          "type": "array"
        }
      },
      "id": "HealthSourcesGetHealthResponseSourceInfo"
    },
    "InstanceGroupManagersSetInstanceTemplateRequest": {
      "properties": {
        "instanceTemplate": {
          "description": "The URL of the instance template that is specified for this managed\ninstance group. The group uses this template to create all new instances\nin the managed instance group. The templates for existing instances in the\ngroup do not change unless you run recreateInstances, runapplyUpdatesToInstances, or set the group'supdatePolicy.type to PROACTIVE.",
          "type": "string"
        }
      },
      "id": "InstanceGroupManagersSetInstanceTemplateRequest",
      "type": "object"
    },
    "SecurityPolicyAssociation": {
      "id": "SecurityPolicyAssociation",
      "properties": {
        "attachmentId": {
          "type": "string",
          "description": "The resource that the security policy is attached to."
        },
        "excludedProjects": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "A list of projects to exclude from the security policy."
        },
        "name": {
          "type": "string",
          "description": "The name for an association."
        },
        "shortName": {
          "description": "Output only. [Output Only] The short name of the security policy of the association.",
          "type": "string",
          "readOnly": true
        },
        "securityPolicyId": {
          "readOnly": true,
          "description": "Output only. [Output Only] The security policy ID of the association.",
          "type": "string"
        },
        "excludedFolders": {
          "type": "array",
          "description": "A list of folders to exclude from the security policy.",
          "items": {
            "type": "string"
          }
        },
        "displayName": {
          "readOnly": true,
          "deprecated": true,
          "type": "string",
          "description": "Output only. [Output Only] The display name of the security policy of the association."
        }
      },
      "type": "object"
    },
    "ConnectionDraining": {
      "description": "Message containing connection draining configuration.",
      "id": "ConnectionDraining",
      "properties": {
        "drainingTimeoutSec": {
          "format": "int32",
          "type": "integer",
          "description": "Configures a duration timeout for existing requests on a removed backend\ninstance. For supported load balancers and protocols, as described inEnabling\nconnection draining."
        }
      },
      "type": "object"
    },
    "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity": {
      "type": "object",
      "id": "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity",
      "properties": {
        "spillover": {
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string",
          "description": "This field indicates whether zonal affinity is enabled or not. The\npossible values are:\n   \n   - ZONAL_AFFINITY_DISABLED: Default Value. Zonal Affinity\n   is disabled. The load balancer distributes new connections to all\n   healthy backend endpoints across all zones.\n   - ZONAL_AFFINITY_STAY_WITHIN_ZONE: Zonal Affinity is\n   enabled. The load balancer distributes new connections to all healthy\n   backend endpoints in the local zone only. If there are no healthy\n   backend endpoints in the local zone, the load balancer distributes\n   new connections to all backend endpoints in the local zone.\n   - ZONAL_AFFINITY_SPILL_CROSS_ZONE: Zonal Affinity is\n   enabled. The load balancer distributes new connections to all healthy\n   backend endpoints in the local zone only. If there aren't enough\n   healthy backend endpoints in the local zone, the load balancer\n   distributes new connections to all healthy backend endpoints across all\n   zones.",
          "enum": [
            "ZONAL_AFFINITY_DISABLED",
            "ZONAL_AFFINITY_SPILL_CROSS_ZONE",
            "ZONAL_AFFINITY_STAY_WITHIN_ZONE"
          ]
        },
        "spilloverRatio": {
          "description": "The value of the field must be in [0, 1]. When the ratio of the count\nof healthy backend endpoints in a zone to the count of backend\nendpoints in that same zone is equal to or above this threshold, the\nload balancer distributes new connections to all healthy endpoints in\nthe local zone only. When the ratio of the count of healthy backend\nendpoints in a zone to the count of backend endpoints in that same\nzone is below this threshold, the load balancer distributes all new\nconnections to all healthy endpoints across all zones.",
          "type": "number",
          "format": "float"
        }
      }
    },
    "StoragePoolDisk": {
      "type": "object",
      "properties": {
        "disk": {
          "description": "Output only. [Output Only] The URL of the disk.",
          "type": "string",
          "readOnly": true
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "provisionedThroughput": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The throughput provisioned for the disk."
        },
        "usedBytes": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. [Output Only] Amount of disk space used."
        },
        "resourcePolicies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Resource policies applied to disk for automatic snapshot\ncreations.",
          "readOnly": true
        },
        "sizeGb": {
          "type": "string",
          "format": "int64",
          "description": "Output only. [Output Only] The disk size, in GB.",
          "readOnly": true
        },
        "status": {
          "enum": [
            "CREATING",
            "DELETING",
            "FAILED",
            "READY",
            "RESTORING",
            "UNAVAILABLE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Disk is provisioning",
            "Disk is deleting.",
            "Disk creation failed.",
            "Disk is ready for use.",
            "Source data is being copied into the disk.",
            "Disk is currently unavailable and cannot be accessed, attached or\ndetached."
          ],
          "description": "Output only. [Output Only] The disk status."
        },
        "attachedInstances": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Instances this disk is attached to."
        },
        "name": {
          "description": "Output only. [Output Only] The name of the disk.",
          "type": "string",
          "readOnly": true
        },
        "type": {
          "description": "Output only. [Output Only] The disk type.",
          "type": "string",
          "readOnly": true
        },
        "provisionedIops": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The number of IOPS provisioned for the disk.",
          "format": "int64"
        }
      },
      "id": "StoragePoolDisk"
    },
    "ReservationsResizeRequest": {
      "type": "object",
      "id": "ReservationsResizeRequest",
      "properties": {
        "specificSkuCount": {
          "description": "Number of allocated resources can be resized with minimum = 1 and\nmaximum = 1000.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "ResourcePolicy": {
      "id": "ResourcePolicy",
      "description": "Represents a Resource Policy resource. You can use resource policies to\nschedule actions for some Compute Engine resources. For example, you can\nuse them toschedule persistent disk\nsnapshots.",
      "type": "object",
      "properties": {
        "diskConsistencyGroupPolicy": {
          "description": "Resource policy for disk consistency groups.",
          "$ref": "ResourcePolicyDiskConsistencyGroupPolicy"
        },
        "resourceStatus": {
          "$ref": "ResourcePolicyResourceStatus",
          "readOnly": true,
          "description": "Output only. [Output Only] The system status of the resource policy."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "kind": {
          "default": "compute#resourcePolicy",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#resource_policies for resource policies.",
          "type": "string"
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "snapshotSchedulePolicy": {
          "description": "Resource policy for persistent disks for creating snapshots.",
          "$ref": "ResourcePolicySnapshotSchedulePolicy"
        },
        "workloadPolicy": {
          "$ref": "ResourcePolicyWorkloadPolicy",
          "description": "Resource policy for defining instance placement for MIGs."
        },
        "instanceSchedulePolicy": {
          "description": "Resource policy for scheduling instance operations.",
          "$ref": "ResourcePolicyInstanceSchedulePolicy"
        },
        "description": {
          "type": "string"
        },
        "groupPlacementPolicy": {
          "description": "Resource policy for instances for placement configuration.",
          "$ref": "ResourcePolicyGroupPlacementPolicy"
        },
        "status": {
          "enum": [
            "CREATING",
            "DELETING",
            "EXPIRED",
            "INVALID",
            "READY"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Resource policy is being created.",
            "Resource policy is being deleted.",
            "Resource policy is expired and will not run again.",
            "",
            "Resource policy is ready to be used."
          ],
          "description": "Output only. [Output Only] The status of resource policy creation.",
          "type": "string"
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "name": {
          "type": "string",
          "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.instances.insert"
            ]
          }
        },
        "region": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "InstanceGroupManagerTargetSizePolicy": {
      "id": "InstanceGroupManagerTargetSizePolicy",
      "type": "object",
      "properties": {
        "mode": {
          "description": "The mode of target size policy based on which the MIG creates its VMs\nindividually or all at once.",
          "enum": [
            "BULK",
            "INDIVIDUAL",
            "UNSPECIFIED_MODE"
          ],
          "type": "string",
          "enumDescriptions": [
            "The mode in which the MIG creates VMs all at once. In this mode, if the\nMIG is unable to create even one VM, the MIG waits until all VMs can be\ncreated at the same time.",
            "The mode in which the MIG creates VMs individually. In this mode, if\nthe MIG is unable to create a VM, the MIG will continue to create the\nother VMs in the group. This is the default mode.",
            "If mode is unspecified, MIG will behave as in the default `INDIVIDUAL`\nmode."
          ]
        }
      }
    },
    "SslCertificateList": {
      "id": "SslCertificateList",
      "description": "Contains a list of SslCertificate resources.",
      "type": "object",
      "properties": {
        "items": {
          "items": {
            "$ref": "SslCertificate"
          },
          "type": "array",
          "description": "A list of SslCertificate resources."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "kind": {
          "description": "Output only. Type of resource.",
          "default": "compute#sslCertificateList",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "ReservationSubBlocksListResponse": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "default": "compute#reservationSubBlock",
          "description": "Type of the resource. Alwayscompute#reservationSubBlock for a list of reservation\nsubBlocks.",
          "type": "string"
        },
        "nextPageToken": {
          "type": "string",
          "description": "This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "ReservationSubBlock"
          },
          "description": "A list of reservation subBlock resources."
        },
        "warning": {
          "description": "Informational warning message.",
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "selfLink": {
          "type": "string",
          "description": "Server-defined URL for this resource."
        }
      },
      "type": "object",
      "description": "A list of reservation subBlocks under a single reservation.",
      "id": "ReservationSubBlocksListResponse"
    },
    "InstancesSetMinCpuPlatformRequest": {
      "type": "object",
      "id": "InstancesSetMinCpuPlatformRequest",
      "properties": {
        "minCpuPlatform": {
          "description": "Minimum cpu/platform this instance should be started at.",
          "type": "string"
        }
      }
    },
    "HttpsHealthCheckList": {
      "type": "object",
      "description": "Contains a list of HttpsHealthCheck resources.",
      "properties": {
        "kind": {
          "readOnly": true,
          "description": "Output only. Type of resource.",
          "default": "compute#httpsHealthCheckList",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "HttpsHealthCheck"
          },
          "description": "A list of HttpsHealthCheck resources."
        }
      },
      "id": "HttpsHealthCheckList"
    },
    "ConsistentHashLoadBalancerSettingsHttpCookie": {
      "description": "The information about the HTTP Cookie on which the hash function is based\nfor load balancing policies that use a consistent hash.",
      "id": "ConsistentHashLoadBalancerSettingsHttpCookie",
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "description": "Path to set for the cookie."
        },
        "ttl": {
          "$ref": "Duration",
          "description": "Lifetime of the cookie."
        },
        "name": {
          "description": "Name of the cookie.",
          "type": "string"
        }
      }
    },
    "TargetInstancesScopedList": {
      "properties": {
        "targetInstances": {
          "type": "array",
          "description": "A list of target instances contained in this scope.",
          "items": {
            "$ref": "TargetInstance"
          }
        },
        "warning": {
          "description": "Informational warning which replaces the list of addresses when\nthe list is empty.",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        }
      },
      "id": "TargetInstancesScopedList",
      "type": "object"
    },
    "InterconnectAttachmentGroupConfigured": {
      "id": "InterconnectAttachmentGroupConfigured",
      "properties": {
        "availabilitySla": {
          "$ref": "InterconnectAttachmentGroupConfiguredAvailabilitySLA",
          "readOnly": true
        }
      },
      "description": "[Output Only] The redundancy this group is configured to support. The way a\nuser queries what SLA their Attachment gets is by looking at this field of\nthe Attachment's AttachmentGroup.",
      "type": "object"
    },
    "HttpHeaderMatch": {
      "type": "object",
      "properties": {
        "headerName": {
          "description": "The name of the HTTP header to match.\n\nFor matching against the HTTP request's authority, use a headerMatch\nwith the header name \":authority\".\n\nFor matching a request's method, use the headerName \":method\".\n\nWhen the URL map is bound to a target gRPC proxy that has\nthe validateForProxyless field set to true, only\nnon-binary\nuser-specified custom metadata and the `content-type` header are supported.\nThe following transport-level headers cannot be used in header matching\nrules:\n`:authority`, `:method`, `:path`, `:scheme`, `user-agent`,\n`accept-encoding`, `content-encoding`, `grpc-accept-encoding`,\n`grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`,\n`grpc-timeout` and `grpc-trace-bin`.",
          "type": "string"
        },
        "exactMatch": {
          "description": "The value should exactly match contents of exactMatch.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.",
          "type": "string"
        },
        "prefixMatch": {
          "type": "string",
          "description": "The value of the header must start with the contents ofprefixMatch.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set."
        },
        "suffixMatch": {
          "description": "The value of the header must end with the contents ofsuffixMatch.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.",
          "type": "string"
        },
        "invertMatch": {
          "type": "boolean",
          "description": "If set to false, the headerMatch is considered a\nmatch if the preceding match criteria are met. If set to true,\nthe headerMatch is considered a match if the preceding\nmatch criteria are NOT met.\n\nThe default setting is false."
        },
        "rangeMatch": {
          "description": "The header value must be an integer and its value must be in the range\nspecified in rangeMatch. If the header does not contain an\ninteger, number or is empty, the match fails.\n\nFor example for a range [-5, 0]\n   \n   \n      - -3 will match.\n      - 0 will not match.\n      - 0.25 will not match.\n      - -3someString will not match.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.\n\nrangeMatch is not supported for load balancers\nthat have loadBalancingScheme set to EXTERNAL.",
          "$ref": "Int64RangeMatch"
        },
        "presentMatch": {
          "description": "A header with the contents of headerName must exist. The\nmatch takes place whether or not the request's header has a value.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.",
          "type": "boolean"
        },
        "regexMatch": {
          "description": "The value of the header must match the regular expression specified inregexMatch.\nFor more information about regular expression syntax, see Syntax.\n\nFor matching against a port specified in the HTTP request, use a\nheaderMatch with headerName set to PORT and a regular expression that\nsatisfies the RFC2616 Host header's port specifier.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.\n\nRegular expressions can only be used when the loadBalancingScheme is\nset to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED\n(regional scope) or INTERNAL_MANAGED.",
          "type": "string"
        }
      },
      "id": "HttpHeaderMatch",
      "description": "matchRule criteria for request header matches."
    },
    "DiskMoveRequest": {
      "id": "DiskMoveRequest",
      "type": "object",
      "properties": {
        "targetDisk": {
          "description": "The URL of the target disk to move. This can be a full or partial URL.\nFor example, the following are all valid URLs to a disk:\n   \n   - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk \n   - projects/project/zones/zone/disks/disk \n   - zones/zone/disks/disk",
          "type": "string"
        },
        "destinationZone": {
          "type": "string",
          "description": "The URL of the destination zone to move the disk. This can be a full or\npartial URL. For example, the following are all valid URLs to a zone:\n   \n   - https://www.googleapis.com/compute/v1/projects/project/zones/zone \n   - projects/project/zones/zone \n   - zones/zone"
        }
      }
    },
    "WireGroupEndpoint": {
      "properties": {
        "interconnects": {
          "description": "A map that contains the redundant Interconnect connections. Specify\nkey-value pairs for the map as follows:\n   \n   - Key: an RFC1035 user-specified label.\n   - Value: an Interconnect object.",
          "additionalProperties": {
            "$ref": "WireGroupEndpointInterconnect"
          },
          "type": "object"
        }
      },
      "description": "A logical endpoint for the wire group. An endpoint represents a metro that\ncontains redundant Interconnect connections. A wire group is created\nbetween two endpoints.",
      "type": "object",
      "id": "WireGroupEndpoint"
    },
    "FutureResourcesSpecSpecificSKUResources": {
      "properties": {
        "instanceCount": {
          "description": "Size of the request, in instance count.",
          "type": "string",
          "format": "int64"
        },
        "machineType": {
          "type": "string",
          "description": "The machine type to use for instances that will use the reservation.\nThis field only accepts machine type names. e.g. n2-standard-4\nand does not accept machine type full or partial url. e.g.\nprojects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4.\nUse for GPU reservations."
        },
        "localSsdPartitions": {
          "items": {
            "$ref": "FutureResourcesSpecLocalSsdPartition"
          },
          "type": "array",
          "description": "Local SSD partitions. You do not have to include SSD partitions that\nare built in the machine type."
        }
      },
      "id": "FutureResourcesSpecSpecificSKUResources",
      "type": "object"
    },
    "SslCertificateAggregatedList": {
      "id": "SslCertificateAggregatedList",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "unreachables": {
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources.",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "warning": {
          "properties": {
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              }
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "kind": {
          "default": "compute#sslCertificateAggregatedList",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#sslCertificateAggregatedList for lists of SSL\nCertificates."
        },
        "items": {
          "type": "object",
          "additionalProperties": {
            "description": "Name of the scope containing this set of SslCertificates.",
            "$ref": "SslCertificatesScopedList"
          },
          "description": "A list of SslCertificatesScopedList resources."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        }
      }
    },
    "SecurityPolicyRuleRedirectOptions": {
      "id": "SecurityPolicyRuleRedirectOptions",
      "type": "object",
      "properties": {
        "target": {
          "description": "Target for the redirect action. This is required if the type is\nEXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.",
          "type": "string"
        },
        "type": {
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "EXTERNAL_302",
            "GOOGLE_RECAPTCHA"
          ],
          "description": "Type of the redirect action. Possible values are:\n   \n   - GOOGLE_RECAPTCHA: redirect to reCAPTCHA for manual\n   challenge assessment.\n   - EXTERNAL_302: redirect to a different URL via a 302\n   response.",
          "type": "string"
        }
      }
    },
    "SslPolicyReference": {
      "type": "object",
      "id": "SslPolicyReference",
      "properties": {
        "sslPolicy": {
          "type": "string"
        }
      }
    },
    "Interval": {
      "type": "object",
      "id": "Interval",
      "properties": {
        "startTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Optional. Inclusive start of the interval.\n\nIf specified, a Timestamp matching this interval will have to be the same\nor after the start."
        },
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Optional. Exclusive end of the interval.\n\nIf specified, a Timestamp matching this interval will have to be before the\nend."
        }
      },
      "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a\nTimestamp end (exclusive).\n\nThe start must be less than or equal to the end.\nWhen the start equals the end, the interval is empty (matches no time).\nWhen both start and end are unspecified, the interval matches any time."
    },
    "StatefulPolicy": {
      "properties": {
        "preservedState": {
          "$ref": "StatefulPolicyPreservedState"
        }
      },
      "id": "StatefulPolicy",
      "type": "object"
    },
    "HealthCheckLogConfig": {
      "description": "Configuration of logging on a health check. If logging is enabled, logs\nwill be exported to Stackdriver.",
      "properties": {
        "enable": {
          "description": "Indicates whether or not to export logs. This is false by default, which\nmeans no health check logging will be done.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "HealthCheckLogConfig"
    },
    "RouterNatLogConfig": {
      "id": "RouterNatLogConfig",
      "type": "object",
      "description": "Configuration of logging on a NAT.",
      "properties": {
        "filter": {
          "type": "string",
          "enumDescriptions": [
            "Export logs for all (successful and unsuccessful) connections.",
            "Export logs for connection failures only.",
            "Export logs for successful connections only."
          ],
          "description": "Specify the desired filtering of logs on this NAT. If unspecified,\nlogs are exported for all connections handled by this NAT.\nThis option can take one of the following values:\n   \n   - ERRORS_ONLY: Export logs only for connection failures.\n   - TRANSLATIONS_ONLY: Export logs only for successful\n   connections.\n   - ALL: Export logs for all connections, successful and\n   unsuccessful.",
          "enum": [
            "ALL",
            "ERRORS_ONLY",
            "TRANSLATIONS_ONLY"
          ]
        },
        "enable": {
          "description": "Indicates whether or not to export logs. This is false by default.",
          "type": "boolean"
        }
      }
    },
    "InstantSnapshotGroupParameters": {
      "type": "object",
      "properties": {
        "sourceInstantSnapshotGroup": {
          "type": "string",
          "description": "The source instant snapshot group used to create disks. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshotGroups/instantSnapshotGroup\n     - projects/project/zones/zone/instantSnapshotGroups/instantSnapshotGroup\n     - zones/zone/instantSnapshotGroups/instantSnapshotGroup"
        }
      },
      "id": "InstantSnapshotGroupParameters"
    },
    "DiskParams": {
      "description": "Additional disk params.",
      "type": "object",
      "properties": {
        "resourceManagerTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Input only. Resource manager tags to be bound to the disk. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT &\nPATCH) when empty."
        }
      },
      "id": "DiskParams"
    },
    "InterconnectGroupPhysicalStructureMetrosFacilities": {
      "id": "InterconnectGroupPhysicalStructureMetrosFacilities",
      "description": "[Output Only] The facilities Interconnects in this metro are present\nin.",
      "type": "object",
      "properties": {
        "zones": {
          "items": {
            "$ref": "InterconnectGroupPhysicalStructureMetrosFacilitiesZones"
          },
          "readOnly": true,
          "type": "array"
        },
        "facility": {
          "type": "string",
          "description": "Output only. [Output Only] The ID of this facility, as a numeric string like\n\"5467\". This is the third component of the location of Interconnects\nin this facility.",
          "readOnly": true
        }
      }
    },
    "VpnGateway": {
      "id": "VpnGateway",
      "type": "object",
      "properties": {
        "vpnInterfaces": {
          "type": "array",
          "description": "The list of VPN interfaces associated with this VPN gateway.",
          "items": {
            "$ref": "VpnGatewayVpnGatewayInterface"
          }
        },
        "gatewayIpVersion": {
          "enumDescriptions": [
            "Every HA-VPN gateway interface is configured with an IPv4 address.",
            "Every HA-VPN gateway interface is configured with an IPv6 address."
          ],
          "type": "string",
          "enum": [
            "IPV4",
            "IPV6"
          ],
          "description": "The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not\nspecified, IPV4 will be used."
        },
        "network": {
          "type": "string",
          "annotations": {
            "required": [
              "compute.vpnGateways.insert"
            ]
          },
          "description": "URL of the network to which this VPN gateway is attached. Provided by the\nclient when the VPN gateway is created."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty."
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "VpnGatewayParams"
        },
        "stackType": {
          "enum": [
            "IPV4_IPV6",
            "IPV4_ONLY",
            "IPV6_ONLY"
          ],
          "description": "The stack type for this VPN gateway to identify the IP protocols that are\nenabled. Possible values are: IPV4_ONLY,IPV4_IPV6, IPV6_ONLY. If not specified,IPV4_ONLY is used if the gateway IP version isIPV4, or IPV4_IPV6 if the gateway IP version isIPV6.",
          "enumDescriptions": [
            "Enable VPN gateway with both IPv4 and IPv6 protocols.",
            "Enable VPN gateway with only IPv4 protocol.",
            "Enable VPN gateway with only IPv6 protocol."
          ],
          "type": "string"
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Always compute#vpnGateway for\nVPN gateways.",
          "readOnly": true,
          "default": "compute#vpnGateway"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "name": {
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.vpnGateways.insert"
            ]
          },
          "type": "string"
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the VPN gateway resides."
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "labelFingerprint": {
          "type": "string",
          "description": "A fingerprint for the labels being applied to this VpnGateway, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a VpnGateway.",
          "format": "byte"
        }
      },
      "description": "Represents a HA VPN gateway.\n\nHA VPN is a high-availability (HA) Cloud VPN solution that lets you securely\nconnect your on-premises network to your Google Cloud Virtual Private Cloud\nnetwork through an IPsec VPN connection in a single region.\nFor more information about Cloud HA VPN solutions, see\nCloud VPN topologies ."
    },
    "SslPoliciesAggregatedList": {
      "id": "SslPoliciesAggregatedList",
      "properties": {
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "etag": {
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#sslPolicyAggregatedList for lists of SSL Policies.",
          "default": "compute#sslPoliciesAggregatedList"
        },
        "warning": {
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array"
        },
        "items": {
          "description": "A list of SslPoliciesScopedList resources.",
          "additionalProperties": {
            "description": "Name of the scope containing this set of SSL policies.",
            "$ref": "SslPoliciesScopedList"
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "CapacityAdviceRequestDistributionPolicy": {
      "type": "object",
      "properties": {
        "targetShape": {
          "description": "Target distribution shape. You can specify the following values:ANY, ANY_SINGLE_ZONE, or BALANCED.",
          "enumDescriptions": [
            "Picks zones for creating VM instances to fulfill the requested number\nof VMs within present resource constraints.",
            "Creates all VM instances within a single zone. The zone is selected\nbased on the present resource constraints.",
            "Prioritizes acquisition of resources, scheduling VMs in zones where\nresources are available while distributing VMs as evenly as possible\nacross selected zones to minimize the impact of zonal failure.",
            "Default value, unused."
          ],
          "enum": [
            "ANY",
            "ANY_SINGLE_ZONE",
            "BALANCED",
            "TARGET_SHAPE_UNSPECIFIED"
          ],
          "type": "string"
        },
        "zones": {
          "items": {
            "$ref": "CapacityAdviceRequestDistributionPolicyZoneConfiguration"
          },
          "description": "Zones where Capacity Advisor looks for capacity.",
          "type": "array"
        }
      },
      "id": "CapacityAdviceRequestDistributionPolicy",
      "description": "Distribution policy."
    },
    "StoragePoolTypeList": {
      "properties": {
        "items": {
          "items": {
            "$ref": "StoragePoolType"
          },
          "type": "array",
          "description": "A list of StoragePoolType resources."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolTypeList for storage pool types.",
          "default": "compute#storagePoolTypeList",
          "readOnly": true,
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Contains a list of storage pool types.",
      "type": "object",
      "id": "StoragePoolTypeList"
    },
    "PreservedStatePreservedDisk": {
      "id": "PreservedStatePreservedDisk",
      "type": "object",
      "properties": {
        "source": {
          "description": "The URL of the disk resource that is stateful and should be attached\nto the VM instance.",
          "type": "string"
        },
        "autoDelete": {
          "enum": [
            "NEVER",
            "ON_PERMANENT_INSTANCE_DELETION"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "These stateful disks will never be deleted during autohealing,\nupdate, instance recreate operations. This flag is used to configure\nif the disk should be deleted after it is no longer used by the group,\ne.g. when the given instance or the whole MIG is deleted.\nNote: disks attached in READ_ONLY mode cannot be\nauto-deleted.",
          "type": "string"
        },
        "mode": {
          "description": "The mode in which to attach this disk, either READ_WRITE orREAD_ONLY. If not specified, the default is to attach the\ndisk in READ_WRITE mode.",
          "enumDescriptions": [
            "Attaches this disk in read-only mode. Multiple VM instances can use\na disk in READ_ONLY mode at a time.",
            "*[Default]* Attaches this disk in READ_WRITE mode. Only\none VM instance at a time can be attached to a disk inREAD_WRITE mode."
          ],
          "type": "string",
          "enum": [
            "READ_ONLY",
            "READ_WRITE"
          ]
        }
      }
    },
    "AcceleratorTopologiesInfoAcceleratorTopologyInfo": {
      "type": "object",
      "description": "Info for a slice of a given topology.",
      "properties": {
        "acceleratorTopology": {
          "description": "The accelerator topology.",
          "type": "string"
        },
        "infoPerTopologyStates": {
          "type": "array",
          "items": {
            "$ref": "AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState"
          },
          "description": "Info for each topology state."
        }
      },
      "id": "AcceleratorTopologiesInfoAcceleratorTopologyInfo"
    },
    "SslPolicy": {
      "id": "SslPolicy",
      "type": "object",
      "properties": {
        "enabledFeatures": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. [Output Only] The list of features enabled in the SSL policy.",
          "readOnly": true
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "fingerprint": {
          "type": "string",
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a SslPolicy. An up-to-date fingerprint must be\nprovided in order to update the SslPolicy, otherwise the\nrequest will fail with error 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an SslPolicy.",
          "format": "byte"
        },
        "name": {
          "type": "string",
          "description": "Name of the resource. The name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character\nmust be a lowercase letter, and all following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be a\ndash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "postQuantumKeyExchange": {
          "type": "string",
          "description": "One of DEFAULT, ENABLED, orDEFERRED. Controls whether the load balancer negotiates\nX25519MLKEM768 key exchange when clients advertise support for it. When set\nto DEFAULT, or if no SSL Policy is attached to the target\nproxy, the load balancer disallows X25519MLKEM768 key exchange before\nOctober 2026, and allows it afterward. When set to ENABLED,\nthe load balancer allows X25519MLKEM768 key exchange. When set toDEFERRED, the load balancer disallows X25519MLKEM768 key\nexchange until October 2027, and allows it afterward.",
          "enum": [
            "DEFAULT",
            "DEFERRED",
            "ENABLED"
          ],
          "enumDescriptions": [
            "Default behavior: disabled until October 2026, enabled afterward.",
            "Disabled until October 2027, enabled afterward.",
            "Enabled now."
          ]
        },
        "warnings": {
          "items": {
            "properties": {
              "data": {
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                    },
                    "value": {
                      "type": "string",
                      "description": "[Output Only] A warning data value corresponding to the key."
                    }
                  }
                },
                "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
                "type": "array"
              },
              "message": {
                "description": "[Output Only] A human-readable description of the warning code.",
                "type": "string"
              },
              "code": {
                "enumDeprecated": [
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  true,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false
                ],
                "enum": [
                  "CLEANUP_FAILED",
                  "DEPRECATED_RESOURCE_USED",
                  "DEPRECATED_TYPE_USED",
                  "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                  "EXPERIMENTAL_TYPE_USED",
                  "EXTERNAL_API_WARNING",
                  "FIELD_VALUE_OVERRIDEN",
                  "INJECTED_KERNELS_DEPRECATED",
                  "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                  "LARGE_DEPLOYMENT_WARNING",
                  "LIST_OVERHEAD_QUOTA_EXCEED",
                  "MISSING_TYPE_DEPENDENCY",
                  "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                  "NEXT_HOP_CANNOT_IP_FORWARD",
                  "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                  "NEXT_HOP_INSTANCE_NOT_FOUND",
                  "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                  "NEXT_HOP_NOT_RUNNING",
                  "NOT_CRITICAL_ERROR",
                  "NO_RESULTS_ON_PAGE",
                  "PARTIAL_SUCCESS",
                  "QUOTA_INFO_UNAVAILABLE",
                  "REQUIRED_TOS_AGREEMENT",
                  "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                  "RESOURCE_NOT_DELETED",
                  "SCHEMA_VALIDATION_IGNORED",
                  "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                  "UNDECLARED_PROPERTIES",
                  "UNREACHABLE"
                ],
                "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
                "enumDescriptions": [
                  "Warning about failed cleanup of transient changes made by a failed\noperation.",
                  "A link to a deprecated resource was created.",
                  "When deploying and at least one of the resources has a type marked as\ndeprecated",
                  "The user created a boot disk that is larger than image size.",
                  "When deploying and at least one of the resources has a type marked as\nexperimental",
                  "Warning that is present in an external api call",
                  "Warning that value of a field has been overridden.\nDeprecated unused field.",
                  "The operation involved use of an injected kernel, which is deprecated.",
                  "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                  "When deploying a deployment with a exceedingly large number of resources",
                  "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                  "A resource depends on a missing type",
                  "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                  "The route's next hop instance cannot ip forward.",
                  "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                  "The route's nextHopInstance URL refers to an instance that does not exist.",
                  "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                  "The route's next hop instance does not have a status of RUNNING.",
                  "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                  "No results are present on a particular list page.",
                  "Success is reported, but some results may be missing due to errors",
                  "Quota information is not available to client requests (e.g:\nregions.list).",
                  "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                  "Warning that a resource is in use.",
                  "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                  "When a resource schema validation is ignored.",
                  "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                  "When undeclared properties in the schema are present",
                  "A given scope cannot be reached."
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "description": "Output only. [Output Only] If potential misconfigurations are detected for this\nSSL policy, this field will be populated with warning messages.",
          "type": "array",
          "readOnly": true
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output only] Type of the resource. Alwayscompute#sslPolicyfor SSL policies.",
          "default": "compute#sslPolicy",
          "readOnly": true
        },
        "id": {
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "customFeatures": {
          "description": "A list of features enabled when the selected profile is CUSTOM. The\n method returns the set of features that can be\nspecified in this list. This field must be empty if the profile is notCUSTOM.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "minTlsVersion": {
          "description": "The minimum version of SSL protocol that can be used by the clients to\nestablish a connection with the load balancer. This can be one ofTLS_1_0, TLS_1_1, TLS_1_2,TLS_1_3. When set to TLS_1_3, the profile field\nmust be set to RESTRICTED.",
          "type": "string",
          "enum": [
            "TLS_1_0",
            "TLS_1_1",
            "TLS_1_2",
            "TLS_1_3"
          ],
          "enumDescriptions": [
            "TLS 1.0",
            "TLS 1.1",
            "TLS 1.2",
            "TLS 1.3"
          ]
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "profile": {
          "type": "string",
          "enum": [
            "COMPATIBLE",
            "CUSTOM",
            "FIPS_202205",
            "MODERN",
            "RESTRICTED"
          ],
          "description": "Profile specifies the set of SSL features that can be used by the load\nbalancer when negotiating SSL with clients. This can be one ofCOMPATIBLE, MODERN, RESTRICTED,FIPS_202205, or CUSTOM. If usingCUSTOM, the set of SSL features to enable must be specified in\nthe customFeatures field. If using FIPS_202205,\nthe min_tls_version field must be set to TLS_1_2.",
          "enumDescriptions": [
            "Compatible profile. Allows the broadset set of clients, even those which\nsupport only out-of-date SSL features to negotiate with the load\nbalancer.",
            "Custom profile. Allow only the set of allowed SSL features specified in\nthe customFeatures field.",
            "FIPS compatible profile. Supports a reduced set of SSL features,\nintended to meet FIPS 140-3 compliance requirements.",
            "Modern profile. Supports a wide set of SSL features, allowing modern\nclients to negotiate SSL with the load balancer.",
            "Restricted profile. Supports a reduced set of SSL features, intended to\nmeet stricter compliance requirements."
          ]
        },
        "region": {
          "description": "Output only. [Output Only] URL of the region where the regional SSL policy\nresides. This field is not applicable to global SSL policies.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Represents an SSL Policy resource.\n\nUse SSL policies to control SSL features, such as versions and cipher\nsuites, that are offered by Application Load Balancers and proxy Network Load\nBalancers. For more information, read \nSSL policies overview."
    },
    "RouterNatSubnetworkToNat": {
      "type": "object",
      "properties": {
        "name": {
          "description": "URL for the subnetwork resource that will use NAT.",
          "type": "string"
        },
        "secondaryIpRangeNames": {
          "items": {
            "type": "string"
          },
          "description": "A list of the secondary ranges of the Subnetwork that are allowed to\nuse NAT. This can be populated only if \"LIST_OF_SECONDARY_IP_RANGES\"\nis one of the values in source_ip_ranges_to_nat.",
          "type": "array"
        },
        "sourceIpRangesToNat": {
          "description": "Specify the options for NAT ranges in the Subnetwork. All\noptions of a single value are valid except\nNAT_IP_RANGE_OPTION_UNSPECIFIED.\nThe only valid option with multiple values is: [\"PRIMARY_IP_RANGE\",\n\"LIST_OF_SECONDARY_IP_RANGES\"]\nDefault: [ALL_IP_RANGES]",
          "items": {
            "enumDescriptions": [
              "The primary and all the secondary ranges are allowed to Nat.",
              "A list of secondary ranges are allowed to Nat.",
              "The primary range is allowed to Nat."
            ],
            "enum": [
              "ALL_IP_RANGES",
              "LIST_OF_SECONDARY_IP_RANGES",
              "PRIMARY_IP_RANGE"
            ],
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "RouterNatSubnetworkToNat",
      "description": "Defines the IP ranges that want to use NAT for a subnetwork."
    },
    "SslCertificateManagedSslCertificate": {
      "properties": {
        "domainStatus": {
          "readOnly": true,
          "type": "object",
          "description": "Output only. [Output only] Detailed statuses of the domains specified for managed\ncertificate resource.",
          "additionalProperties": {
            "enumDescriptions": [
              "A managed certificate can be provisioned, no issues for this domain.",
              "",
              "Failed to check CAA records for the domain.",
              "Certificate issuance forbidden by an explicit CAA record for the\ndomain.",
              "There seems to be problem with the user's DNS or load balancer\nconfiguration for this domain.",
              "Reached rate-limit for certificates per top-level private domain.",
              "Certificate provisioning for this domain is under way. GCP will\nattempt to provision the first certificate."
            ],
            "type": "string",
            "enum": [
              "ACTIVE",
              "DOMAIN_STATUS_UNSPECIFIED",
              "FAILED_CAA_CHECKING",
              "FAILED_CAA_FORBIDDEN",
              "FAILED_NOT_VISIBLE",
              "FAILED_RATE_LIMITED",
              "PROVISIONING"
            ]
          }
        },
        "status": {
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "The certificate management is working, and a certificate has been\nprovisioned.",
            "",
            "The certificate management is working. GCP will attempt to provision\nthe first certificate.",
            "Certificate provisioning failed due to an issue with the DNS\nor load balancing configuration.\nFor details of which domain failed, consult domain_status field.",
            "Certificate provisioning failed due to an issue with the DNS\nor load balancing configuration. It won't be retried. To try again\ndelete and create a new managed SslCertificate resource.\nFor details of which domain failed, consult domain_status field.",
            "Renewal of the certificate has failed due to an issue with the DNS\nor load balancing configuration. The existing cert is still serving;\nhowever, it will expire shortly. To provision a renewed certificate,\ndelete and create a new managed SslCertificate resource.\nFor details on which domain failed, consult domain_status field."
          ],
          "description": "Output only. [Output only] Status of the managed certificate resource.",
          "enum": [
            "ACTIVE",
            "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED",
            "PROVISIONING",
            "PROVISIONING_FAILED",
            "PROVISIONING_FAILED_PERMANENTLY",
            "RENEWAL_FAILED"
          ]
        },
        "domains": {
          "description": "The domains for which a managed SSL certificate will be generated. Each\nGoogle-managed SSL certificate supports up to the [maximum number of\ndomains per Google-managed SSL\ncertificate](/load-balancing/docs/quotas#ssl_certificates).",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Configuration and status of a managed SSL certificate.",
      "type": "object",
      "id": "SslCertificateManagedSslCertificate"
    },
    "TargetTcpProxyAggregatedList": {
      "type": "object",
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetTcpProxyAggregatedList for lists of Target\nTCP Proxies.",
          "default": "compute#targetTcpProxyAggregatedList"
        },
        "warning": {
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "type": "array"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "items": {
          "additionalProperties": {
            "description": "Name of the scope containing this set of TargetTcpProxies.",
            "$ref": "TargetTcpProxiesScopedList"
          },
          "type": "object",
          "description": "A list of TargetTcpProxiesScopedList resources."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "readOnly": true
        }
      },
      "id": "TargetTcpProxyAggregatedList"
    },
    "InterconnectAttachmentGroupConfiguredAvailabilitySLA": {
      "type": "object",
      "description": "[Output Only] Which SLA this group is configured to support, and why this\ngroup does or does not meet that SLA's requirements.",
      "id": "InterconnectAttachmentGroupConfiguredAvailabilitySLA",
      "properties": {
        "intendedSlaBlockers": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers"
          }
        },
        "effectiveSla": {
          "readOnly": true,
          "type": "string",
          "enum": [
            "EFFECTIVE_SLA_UNSPECIFIED",
            "NO_SLA",
            "PRODUCTION_CRITICAL",
            "PRODUCTION_NON_CRITICAL"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ]
        }
      }
    },
    "OutlierDetection": {
      "description": "Settings controlling the eviction of unhealthy hosts from the load balancing\npool for the backend service.",
      "properties": {
        "consecutiveErrors": {
          "format": "int32",
          "description": "Number of consecutive errors before a backend endpoint is ejected from the\nload balancing pool. When the backend endpoint is accessed over HTTP, a 5xx\nreturn code qualifies as an error. Defaults to 5.",
          "type": "integer"
        },
        "successRateStdevFactor": {
          "format": "int32",
          "type": "integer",
          "description": "This factor is used to determine the ejection threshold for success rate\noutlier ejection. The ejection threshold is the difference between the mean\nsuccess rate, and the product of this factor and the standard deviation of\nthe mean success rate: mean - (stdev * successRateStdevFactor). This factor\nis divided by a thousand to get a double. That is, if the desired factor\nis 1.9, the runtime value should be 1900. Defaults to 1900.\n\nNot supported when the backend service uses Serverless NEG."
        },
        "maxEjectionPercent": {
          "format": "int32",
          "description": "Maximum percentage of backend endpoints in the load balancing pool for the\nbackend service that can be ejected if the ejection conditions are met.\nDefaults to 50%.",
          "type": "integer"
        },
        "interval": {
          "$ref": "Duration",
          "description": "Time interval between ejection analysis sweeps. This can result in both new\nejections and backend endpoints being returned to service. The interval is\nequal to the number of seconds as defined in\noutlierDetection.interval.seconds plus the number of nanoseconds as defined\nin outlierDetection.interval.nanos. Defaults to 1 second."
        },
        "baseEjectionTime": {
          "$ref": "Duration",
          "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms\nor 30s.\n\nAfter a backend endpoint is returned back to the load balancing pool, it\ncan be ejected again in another ejection analysis. Thus, the total ejection\ntime is equal to the base ejection time multiplied by the number of times\nthe backend endpoint has been ejected. Defaults to 30000ms or 30s."
        },
        "successRateMinimumHosts": {
          "description": "The number of backend endpoints in the load balancing pool that must have\nenough request volume to detect success rate outliers. If the number of\nbackend endpoints is fewer than this setting, outlier detection via success\nrate statistics is not performed for any backend endpoint in the load\nbalancing pool. Defaults to 5.\n\nNot supported when the backend service uses Serverless NEG.",
          "format": "int32",
          "type": "integer"
        },
        "enforcingConsecutiveGatewayFailure": {
          "type": "integer",
          "format": "int32",
          "description": "The percentage chance that a backend endpoint will be ejected when an\noutlier status is detected through consecutive gateway failures. This\nsetting can be used to disable ejection or to ramp it up slowly. Defaults\nto 100."
        },
        "successRateRequestVolume": {
          "type": "integer",
          "format": "int32",
          "description": "The minimum number of total requests that must be collected in one interval\n(as defined by the interval duration above) to include this backend\nendpoint in success rate based outlier detection. If the volume is lower\nthan this setting, outlier detection via success rate statistics is not\nperformed for that backend endpoint. Defaults to 100.\n\nNot supported when the backend service uses Serverless NEG."
        },
        "enforcingSuccessRate": {
          "description": "The percentage chance that a backend endpoint will be ejected when an\noutlier status is detected through success rate statistics. This setting\ncan be used to disable ejection or to ramp it up slowly. Defaults to 100.\n\nNot supported when the backend service uses Serverless NEG.",
          "type": "integer",
          "format": "int32"
        },
        "consecutiveGatewayFailure": {
          "type": "integer",
          "format": "int32",
          "description": "The number of consecutive gateway failures (502, 503, 504 status or\nconnection errors that are mapped to one of those status codes) before a\nconsecutive gateway failure ejection occurs. Defaults to 3."
        },
        "enforcingConsecutiveErrors": {
          "format": "int32",
          "description": "The percentage chance that a backend endpoint will be ejected when an\noutlier status is detected through consecutive 5xx. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.",
          "type": "integer"
        }
      },
      "type": "object",
      "id": "OutlierDetection"
    },
    "RegionInstanceGroupManagersRecreateRequest": {
      "type": "object",
      "id": "RegionInstanceGroupManagersRecreateRequest",
      "properties": {
        "instances": {
          "description": "The URLs of one or more instances to recreate. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "NodeGroupAutoscalingPolicy": {
      "type": "object",
      "id": "NodeGroupAutoscalingPolicy",
      "properties": {
        "mode": {
          "enumDescriptions": [
            "",
            "Autoscaling is disabled.",
            "Autocaling is fully enabled.",
            "Autoscaling will only scale out and will not remove nodes."
          ],
          "type": "string",
          "enum": [
            "MODE_UNSPECIFIED",
            "OFF",
            "ON",
            "ONLY_SCALE_OUT"
          ],
          "description": "The autoscaling mode. Set to one of: ON, OFF,\nor ONLY_SCALE_OUT. For more information, see \nAutoscaler modes."
        },
        "maxNodes": {
          "type": "integer",
          "description": "The maximum number of nodes that the group should have. Must be set if\nautoscaling is enabled. Maximum value allowed is 100.",
          "format": "int32"
        },
        "minNodes": {
          "format": "int32",
          "description": "The minimum number of nodes that the group should have.",
          "type": "integer"
        }
      }
    },
    "NamedSet": {
      "id": "NamedSet",
      "properties": {
        "fingerprint": {
          "description": "A fingerprint for the Named Set being applied to this Router, which is\nessentially a hash of the Named Set used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes\nafter every request to modify or update the Named Set. You must always\nprovide an up-to-date fingerprint hash in order to update or change\nlabels.\n\nTo see the latest fingerprint, make a getNamedSet() request\nto retrieve a Named Set.",
          "format": "byte",
          "type": "string"
        },
        "elements": {
          "items": {
            "$ref": "Expr"
          },
          "type": "array",
          "description": "CEL expressions that are comparable to constructs of this set's type\n(see Policy Language)."
        },
        "type": {
          "enum": [
            "NAMED_SET_TYPE_COMMUNITY",
            "NAMED_SET_TYPE_PREFIX"
          ],
          "enumDescriptions": [
            "The Named Set is a Community Named Set.",
            "The Named Set is a Prefix Named Set."
          ],
          "description": "This named set's type",
          "type": "string"
        },
        "name": {
          "description": "This set's name, which must be a resource ID segment and unique within all\nnamed sets owned by the Router. Name should conform to RFC1035.",
          "type": "string"
        },
        "description": {
          "description": "An optional description of named set.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BackendServiceTlsSettingsSubjectAltName": {
      "type": "object",
      "id": "BackendServiceTlsSettingsSubjectAltName",
      "description": "A Subject Alternative Name that the load balancer matches against the SAN\nfield in the TLS certificate provided by the backend, specified as either\na DNS name or a URI, in accordance with RFC 5280 4.2.1.6",
      "properties": {
        "dnsName": {
          "type": "string",
          "description": "The SAN specified as a DNS Name."
        },
        "uniformResourceIdentifier": {
          "description": "The SAN specified as a URI.",
          "type": "string"
        }
      }
    },
    "BackendServicesScopedList": {
      "id": "BackendServicesScopedList",
      "type": "object",
      "properties": {
        "warning": {
          "type": "object",
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty.",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          }
        },
        "backendServices": {
          "type": "array",
          "items": {
            "$ref": "BackendService"
          },
          "description": "A list of BackendServices contained in this scope."
        }
      }
    },
    "InstanceGroupManagersDeletePerInstanceConfigsReq": {
      "properties": {
        "names": {
          "description": "The list of instance names for which we want to delete per-instance configs\non this managed instance group.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "description": "InstanceGroupManagers.deletePerInstanceConfigs",
      "id": "InstanceGroupManagersDeletePerInstanceConfigsReq"
    },
    "BackendServiceFailoverPolicy": {
      "properties": {
        "failoverRatio": {
          "type": "number",
          "format": "float",
          "description": "The value of the field must be in the range[0, 1]. If the value is 0, the load balancer performs a\nfailover when the number of healthy primary VMs equals zero.\nFor all other values, the load balancer performs a failover when the\ntotal number of healthy primary VMs is less than this ratio.\nFor load balancers that have configurable\nfailover:\n[Internal TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview)."
        },
        "dropTrafficIfUnhealthy": {
          "description": "If set to true, connections to the\nload balancer are dropped when all primary and all backup backend VMs are\nunhealthy.If set to false, connections are distributed\namong all primary VMs when all primary and all backup backend VMs are\n unhealthy.\nFor load balancers that have configurable\nfailover:\n[Internal passthrough\nNetwork Load\nBalancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external passthrough\nNetwork Load\nBalancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).\nThe default is false.",
          "type": "boolean"
        },
        "disableConnectionDrainOnFailover": {
          "type": "boolean",
          "description": "This can be set to true if the protocol isTCP, UDP, or UNSPECIFIED.\n\nThe default is false."
        }
      },
      "description": "For load balancers that have configurable\nfailover:\n[Internal passthrough Network Load\nBalancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external passthrough\nNetwork Load\nBalancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).\nOn failover or failback, this field indicates whether connection draining\nwill be honored. Google Cloud has a fixed connection draining timeout of\n10 minutes. A setting of true terminates existing TCP\nconnections to the active pool during failover and failback, immediately\ndraining traffic. A setting of false allows existing TCP\nconnections to persist, even on VMs no longer in the active pool, for up\nto the duration of the connection draining timeout (10 minutes).",
      "type": "object",
      "id": "BackendServiceFailoverPolicy"
    },
    "TargetSslProxy": {
      "description": "Represents a Target SSL Proxy resource.\n\nA target SSL proxy is a component of a Proxy Network Load Balancer.\nThe forwarding rule references the target SSL proxy, and the target proxy\nthen references a backend service. For more information, readProxy Network\nLoad Balancer overview.",
      "properties": {
        "sslCertificates": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "URLs to SslCertificate resources that are used to\nauthenticate connections to Backends. At least one SSL certificate\nmust be specified. Currently, you may specify up to 15 SSL certificates.\nsslCertificates do not apply when the load balancing scheme is set to\nINTERNAL_SELF_MANAGED."
        },
        "sslPolicy": {
          "description": "URL of SslPolicy resource that will be associated with the TargetSslProxy\nresource. If not set, the TargetSslProxy resource will not have any\nSSL policy configured.",
          "type": "string"
        },
        "name": {
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "service": {
          "description": "URL to the BackendService resource.",
          "type": "string"
        },
        "proxyHeader": {
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.",
          "enum": [
            "NONE",
            "PROXY_V1"
          ]
        },
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64",
          "type": "string"
        },
        "certificateMap": {
          "type": "string",
          "description": "URL of a certificate map that identifies a certificate map associated with\nthe given target proxy.\nThis field can only be set for global target proxies.\nIf set, sslCertificates will be ignored.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}."
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetSslProxy for target SSL proxies.",
          "type": "string",
          "default": "compute#targetSslProxy",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "TargetSslProxy"
    },
    "ResourceStatusScheduling": {
      "type": "object",
      "properties": {
        "availabilityDomain": {
          "type": "integer",
          "description": "Specifies the availability domain to place the instance in. The value\nmust be a number between 1 and the number of availability domains\nspecified in the spread placement policy attached to the instance.",
          "format": "int32"
        },
        "terminationTimestamp": {
          "type": "string",
          "description": "Time in future when the instance will be terminated inRFC3339 text format."
        },
        "gracefulShutdownTimestamp": {
          "description": "Output only. Specifies the timestamp, when the instance will start graceful shutdown\nprocess, in RFC3339 text format.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "ResourceStatusScheduling"
    },
    "AllocationResourceStatusHealthInfo": {
      "type": "object",
      "id": "AllocationResourceStatusHealthInfo",
      "properties": {
        "degradedBlockCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of reservation blocks that are degraded."
        },
        "healthyBlockCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of reservation blocks that are healthy."
        },
        "healthStatus": {
          "description": "The health status of the reservation.",
          "type": "string",
          "enumDescriptions": [
            "The reservation is degraded.",
            "The reservation is healthy.",
            "The health status of the reservation is unspecified."
          ],
          "enum": [
            "DEGRADED",
            "HEALTHY",
            "HEALTH_STATUS_UNSPECIFIED"
          ]
        }
      },
      "description": "Health information for the reservation."
    },
    "NetworkEdgeSecurityServiceAggregatedList": {
      "properties": {
        "items": {
          "description": "A list of NetworkEdgeSecurityServicesScopedList resources.",
          "type": "object",
          "additionalProperties": {
            "description": "Name of the scope containing this set of security policies.",
            "$ref": "NetworkEdgeSecurityServicesScopedList"
          }
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          }
        },
        "etag": {
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#networkEdgeSecurityServiceAggregatedList for lists of\nNetwork Edge Security Services.",
          "default": "compute#networkEdgeSecurityServiceAggregatedList",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "NetworkEdgeSecurityServiceAggregatedList"
    },
    "ManagedRulesetList": {
      "type": "object",
      "id": "ManagedRulesetList",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "ManagedRuleset"
          },
          "description": "The list of managed rulesets."
        },
        "id": {
          "type": "string"
        },
        "warning": {
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "nextPageToken": {
          "type": "string"
        }
      }
    },
    "FirewallList": {
      "id": "FirewallList",
      "properties": {
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "Firewall"
          },
          "type": "array",
          "description": "A list of Firewall resources."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#firewallList",
          "description": "Output only. [Output Only] Type of resource. Always compute#firewallList\nfor lists of firewalls.",
          "type": "string"
        }
      },
      "description": "Contains a list of firewalls.",
      "type": "object"
    },
    "BackendBucketCdnPolicyBypassCacheOnRequestHeader": {
      "properties": {
        "headerName": {
          "description": "The header field name to match on when bypassing cache.\nValues are case-insensitive.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Bypass the cache when the specified request headers are present,\ne.g. Pragma or Authorization headers. Values are case insensitive.\nThe presence of such a header overrides the cache_mode setting.",
      "id": "BackendBucketCdnPolicyBypassCacheOnRequestHeader"
    },
    "DisplayDevice": {
      "description": "A set of Display Device options",
      "type": "object",
      "properties": {
        "enableDisplay": {
          "description": "Defines whether the instance has Display enabled.",
          "type": "boolean"
        }
      },
      "id": "DisplayDevice"
    },
    "CommitmentList": {
      "type": "object",
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "items": {
          "items": {
            "$ref": "Commitment"
          },
          "type": "array",
          "description": "A list of Commitment resources."
        },
        "kind": {
          "default": "compute#commitmentList",
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Always compute#commitmentList\nfor lists of commitments.",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        }
      },
      "description": "Contains a list of Commitment resources.",
      "id": "CommitmentList"
    },
    "InterconnectMacsec": {
      "id": "InterconnectMacsec",
      "properties": {
        "failOpen": {
          "type": "boolean",
          "description": "If set to true, the Interconnect connection is configured with ashould-secure MACsec security policy, that allows the Google\nrouter to fallback to cleartext traffic if the MKA session cannot be\nestablished. By default, the Interconnect connection is configured with amust-secure security policy that drops all traffic if the\nMKA session cannot be established with your router."
        },
        "preSharedKeys": {
          "type": "array",
          "items": {
            "$ref": "InterconnectMacsecPreSharedKey"
          },
          "description": "Required. A keychain placeholder describing a set of named key objects\nalong with their start times. A MACsec CKN/CAK is generated for each\nkey in the key chain. Google router automatically picks the key with\nthe most recent startTime when establishing or re-establishing a MACsec\nsecure link."
        }
      },
      "type": "object",
      "description": "Configuration information for enabling Media Access Control security\n(MACsec) on this Cloud Interconnect connection between Google and your\non-premises router."
    },
    "InstancesReportHostAsFaultyRequestFaultReason": {
      "id": "InstancesReportHostAsFaultyRequestFaultReason",
      "type": "object",
      "properties": {
        "behavior": {
          "enumDescriptions": [
            "Public reportable behaviors",
            "Any GPU or TPU errors or faults where the accelerator becomes unusable",
            "",
            "",
            "Unrecoverable GPU error identified by an XID"
          ],
          "enum": [
            "BEHAVIOR_UNSPECIFIED",
            "CHIP_ERROR",
            "PERFORMANCE",
            "SILENT_DATA_CORRUPTION",
            "UNRECOVERABLE_GPU_ERROR"
          ],
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "HealthChecksAggregatedList": {
      "type": "object",
      "properties": {
        "kind": {
          "readOnly": true,
          "description": "Output only. Type of resource.",
          "default": "compute#healthChecksAggregatedList",
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "items": {
          "additionalProperties": {
            "$ref": "HealthChecksScopedList",
            "description": "Name of the scope containing this set of HealthChecks."
          },
          "description": "A list of HealthChecksScopedList resources.",
          "type": "object"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string"
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "id": "HealthChecksAggregatedList"
    },
    "InterconnectGroupsCreateMembers": {
      "type": "object",
      "id": "InterconnectGroupsCreateMembers",
      "properties": {
        "intentMismatchBehavior": {
          "enum": [
            "CREATE",
            "REJECT",
            "UNSPECIFIED"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "description": "How to behave when configured.topologyCapability.supportedSLA would not\nequal intent.topologyCapability after this call.",
          "type": "string"
        },
        "interconnects": {
          "items": {
            "$ref": "InterconnectGroupsCreateMembersInterconnectInput"
          },
          "type": "array"
        },
        "templateInterconnect": {
          "$ref": "InterconnectGroupsCreateMembersInterconnectInput",
          "description": "Parameters for the Interconnects to create."
        }
      }
    },
    "InstanceGroupManagerResizeRequestsListResponse": {
      "properties": {
        "id": {
          "description": "Output only. Unique identifier for the resource; defined by the server.",
          "type": "string",
          "readOnly": true
        },
        "warning": {
          "description": "Output only. Informational warning message.",
          "type": "object",
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "type": "array"
            }
          },
          "readOnly": true
        },
        "kind": {
          "default": "compute#instanceGroupManagerResizeRequestList",
          "type": "string",
          "description": "Output only. Type of the resource. Alwayscompute#instanceGroupManagerResizeRequestList for\na list of resize requests.",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "Output only. This token allows you to get the next page of results for list requests.\nIf the number of results is larger than maxResults, use thenextPageToken as a value for the query parameterpageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "InstanceGroupManagerResizeRequest"
          },
          "description": "A list of resize request resources."
        }
      },
      "id": "InstanceGroupManagerResizeRequestsListResponse",
      "description": "[Output Only] A list of resize requests.",
      "type": "object"
    },
    "SavedAttachedDisk": {
      "description": "DEPRECATED: Please use compute#savedDisk instead.\nAn instance-attached disk resource.",
      "id": "SavedAttachedDisk",
      "type": "object",
      "properties": {
        "mode": {
          "description": "The mode in which this disk is attached to the source instance, eitherREAD_WRITE or READ_ONLY.",
          "type": "string",
          "enumDescriptions": [
            "Attaches this disk in read-only mode. Multiple virtual machines can use\na disk in read-only mode at a time.",
            "*[Default]* Attaches this disk in read-write mode. Only one\nvirtual machine at a time can be attached to a disk in read-write mode."
          ],
          "enum": [
            "READ_ONLY",
            "READ_WRITE"
          ]
        },
        "storageBytes": {
          "description": "Output only. [Output Only] A size of the storage used by the disk's snapshot by this\nmachine image.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "deviceName": {
          "description": "Specifies the name of the disk attached to the source instance.",
          "type": "string"
        },
        "diskEncryptionKey": {
          "$ref": "CustomerEncryptionKey",
          "description": "The encryption key for the disk."
        },
        "diskType": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the disk type resource. For example:projects/project/zones/zone/diskTypes/pd-standard or\npd-ssd"
        },
        "storageBytesStatus": {
          "enum": [
            "UPDATING",
            "UP_TO_DATE"
          ],
          "description": "Output only. [Output Only] An indicator whether storageBytes is in a\nstable state or it is being adjusted as a result of shared storage\nreallocation. This status can either be UPDATING, meaning\nthe size of the snapshot is being updated, or UP_TO_DATE,\nmeaning the size of the snapshot is up-to-date.",
          "readOnly": true,
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        },
        "diskSizeGb": {
          "format": "int64",
          "type": "string",
          "description": "The size of the disk in base-2 GB."
        },
        "source": {
          "type": "string",
          "description": "Specifies a URL of the disk attached to the source instance."
        },
        "kind": {
          "type": "string",
          "default": "compute#savedAttachedDisk",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#attachedDisk for attached disks."
        },
        "boot": {
          "type": "boolean",
          "description": "Indicates that this is a boot disk. The virtual machine will use the first\npartition of the disk for its root filesystem."
        },
        "interface": {
          "type": "string",
          "description": "Specifies the disk interface to use for attaching this disk, which is\neither SCSI or NVME.",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "NVME",
            "SCSI"
          ]
        },
        "licenses": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output Only] Any valid publicly visible licenses.",
          "items": {
            "type": "string"
          }
        },
        "type": {
          "type": "string",
          "description": "Specifies the type of the attached disk, either SCRATCH orPERSISTENT.",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "PERSISTENT",
            "SCRATCH"
          ]
        },
        "autoDelete": {
          "type": "boolean",
          "description": "Specifies whether the disk will be auto-deleted when the instance is\ndeleted (but not when the disk is detached from the instance)."
        },
        "index": {
          "format": "int32",
          "type": "integer",
          "readOnly": true,
          "description": "Output only. Specifies zero-based index of the disk that is attached to the source\ninstance."
        },
        "guestOsFeatures": {
          "type": "array",
          "items": {
            "$ref": "GuestOsFeature"
          },
          "description": "A list of features to enable on the guest operating system. Applicable only\nfor bootable images. Read\nEnabling guest operating system features to see a list of available\noptions."
        }
      }
    },
    "ServiceAccount": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "Email address of the service account."
        },
        "scopes": {
          "type": "array",
          "description": "The list of scopes to be made available for this service account.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "ServiceAccount",
      "description": "A service account."
    },
    "ResourcePolicyInstanceSchedulePolicy": {
      "type": "object",
      "properties": {
        "startTime": {
          "description": "The start time of the schedule. The timestamp is an RFC3339 string.",
          "type": "string"
        },
        "timeZone": {
          "type": "string",
          "description": "Specifies the time zone to be used in interpreting Schedule.schedule.\nThe value of this field must be a time zone name from the tz database:\nhttps://wikipedia.org/wiki/Tz_database."
        },
        "vmStopSchedule": {
          "$ref": "ResourcePolicyInstanceSchedulePolicySchedule",
          "description": "Specifies the schedule for stopping instances."
        },
        "vmStartSchedule": {
          "$ref": "ResourcePolicyInstanceSchedulePolicySchedule",
          "description": "Specifies the schedule for starting instances."
        },
        "expirationTime": {
          "description": "The expiration time of the schedule. The timestamp is an RFC3339 string.",
          "type": "string"
        }
      },
      "description": "An InstanceSchedulePolicy specifies when and how frequent certain\noperations are performed on the instance.",
      "id": "ResourcePolicyInstanceSchedulePolicy"
    },
    "SecurityPolicyRulePreconfiguredWafConfigExclusion": {
      "type": "object",
      "id": "SecurityPolicyRulePreconfiguredWafConfigExclusion",
      "properties": {
        "requestHeadersToExclude": {
          "description": "A list of request header names whose value will be excluded from\ninspection during preconfigured WAF evaluation.",
          "type": "array",
          "items": {
            "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
          }
        },
        "requestQueryParamsToExclude": {
          "items": {
            "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
          },
          "type": "array",
          "description": "A list of request query parameter names whose value will be excluded\nfrom inspection during preconfigured WAF evaluation. Note that the\nparameter can be in the query string or in the POST body."
        },
        "requestCookiesToExclude": {
          "description": "A list of request cookie names whose value will be excluded from\ninspection during preconfigured WAF evaluation.",
          "items": {
            "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
          },
          "type": "array"
        },
        "requestUrisToExclude": {
          "type": "array",
          "items": {
            "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
          },
          "description": "A list of request URIs from the request line to be excluded from\ninspection during preconfigured WAF evaluation. When specifying this\nfield, the query or fragment part should be excluded."
        },
        "targetRuleSet": {
          "description": "Target WAF rule set to apply the preconfigured WAF exclusion.",
          "type": "string"
        },
        "targetRuleIds": {
          "description": "A list of target rule IDs under the WAF rule set to apply the\npreconfigured WAF exclusion. If omitted, it refers to all the rule\nIDs under the WAF rule set.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requestBodiesToExclude": {
          "description": "A list of request body fields to be excluded from inspection during\npreconfigured WAF evaluation.",
          "type": "array",
          "items": {
            "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
          }
        }
      }
    },
    "ReservationSlotsGetVersionRequest": {
      "id": "ReservationSlotsGetVersionRequest",
      "properties": {
        "sbomSelections": {
          "description": "The SBOM selection to return. Duplicate values in the list will be ignored.",
          "items": {
            "enum": [
              "SBOM_SELECTION_CURRENT",
              "SBOM_SELECTION_TARGET",
              "SBOM_SELECTION_UNSPECIFIED"
            ],
            "enumDescriptions": [
              "",
              "",
              ""
            ],
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NotificationEndpointGrpcSettings": {
      "type": "object",
      "properties": {
        "authority": {
          "type": "string",
          "description": "Optional. If specified, this field is used to set the authority header by\nthe sender of notifications. See\nhttps://tools.ietf.org/html/rfc7540#section-8.1.2.3"
        },
        "resendInterval": {
          "$ref": "Duration",
          "description": "Optional. This field is used to configure how often to send a full update\nof all non-healthy backends. If unspecified, full updates are not sent.\nIf specified, must be in the range between 600 seconds to 3600 seconds.\nNanos are disallowed. Can only be set for regional notification\nendpoints."
        },
        "endpoint": {
          "description": "Endpoint to which gRPC notifications are sent. This must be a valid\ngRPCLB DNS name.",
          "type": "string"
        },
        "payloadName": {
          "description": "Optional. If specified, this field is used to populate the \"name\" field\nin gRPC requests.",
          "type": "string"
        },
        "retryDurationSec": {
          "type": "integer",
          "description": "How much time (in seconds) is spent attempting notification retries\nuntil a successful response is received. Default is 30s. Limit is 20m\n(1200s). Must be a positive number.",
          "format": "uint32"
        }
      },
      "description": "Represents a gRPC setting that describes one gRPC notification endpoint and\nthe retry duration attempting to send notification to this endpoint.",
      "id": "NotificationEndpointGrpcSettings"
    },
    "InterconnectDiagnosticsLinkStatus": {
      "properties": {
        "macsec": {
          "description": "Describes the status of MACsec encryption on this link.",
          "$ref": "InterconnectDiagnosticsMacsecStatus"
        },
        "receivingOpticalPower": {
          "description": "An InterconnectDiagnostics.LinkOpticalPower object,\ndescribing the current value and status of the received light level.",
          "$ref": "InterconnectDiagnosticsLinkOpticalPower"
        },
        "lacpStatus": {
          "$ref": "InterconnectDiagnosticsLinkLACPStatus"
        },
        "googleDemarc": {
          "description": "The Demarc address assigned by Google and provided in the LoA.",
          "type": "string"
        },
        "arpCaches": {
          "description": "A list of InterconnectDiagnostics.ARPEntry objects,\ndescribing the ARP neighbor entries seen on this link.\nThis will be empty if the link is bundled",
          "items": {
            "$ref": "InterconnectDiagnosticsARPEntry"
          },
          "type": "array"
        },
        "circuitId": {
          "description": "The unique ID for this link assigned during turn up by Google.",
          "type": "string"
        },
        "transmittingOpticalPower": {
          "$ref": "InterconnectDiagnosticsLinkOpticalPower",
          "description": "An InterconnectDiagnostics.LinkOpticalPower object,\ndescribing the current value and status of the transmitted light level."
        },
        "operationalStatus": {
          "description": "The operational status of the link.",
          "enumDescriptions": [
            "The interface is unable to communicate with the remote end.",
            "The interface has low level communication with the remote end."
          ],
          "type": "string",
          "enum": [
            "LINK_OPERATIONAL_STATUS_DOWN",
            "LINK_OPERATIONAL_STATUS_UP"
          ]
        }
      },
      "type": "object",
      "id": "InterconnectDiagnosticsLinkStatus"
    },
    "ImageParams": {
      "id": "ImageParams",
      "description": "Additional image params.",
      "properties": {
        "resourceManagerTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Input only. Resource manager tags to be bound to the image. Tag keys and values have\nthe same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT &\nPATCH) when empty."
        }
      },
      "type": "object"
    },
    "InterconnectLocationCrossSiteInterconnectInfo": {
      "type": "object",
      "description": "Information about Cross-Site Interconnect wires which may be created\nbetween the containing location and another remote location.",
      "id": "InterconnectLocationCrossSiteInterconnectInfo",
      "properties": {
        "maxDynamicPathBandwidthGbps": {
          "format": "int64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The maximum unmetered bandwidth for dynamic paths allowable per\nWireGroup for this metro."
        },
        "city": {
          "description": "Output only. The remote location for Cross-Site Interconnect wires. This specifies an\nInterconnectLocation city (metropolitan area designator), which itself\nmay match multiple InterconnectLocations.",
          "readOnly": true,
          "type": "string"
        },
        "maxFixedPathBandwidthGbps": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The maximum unmetered bandwidth for fixed paths allowable per WireGroup\nfor this metro."
        }
      }
    },
    "SecurityPolicyRuleHttpHeaderAction": {
      "id": "SecurityPolicyRuleHttpHeaderAction",
      "type": "object",
      "properties": {
        "requestHeadersToAdds": {
          "description": "The list of request headers to add or overwrite if they're already\npresent.",
          "type": "array",
          "items": {
            "$ref": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption"
          }
        }
      }
    },
    "SecurityPoliciesListPreconfiguredExpressionSetsResponse": {
      "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse",
      "properties": {
        "preconfiguredExpressionSets": {
          "$ref": "SecurityPoliciesWafConfig"
        }
      },
      "type": "object"
    },
    "ServerBinding": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Node may associate with any physical server over its lifetime.",
            "Node may associate with minimal physical servers over its lifetime.",
            ""
          ],
          "enum": [
            "RESTART_NODE_ON_ANY_SERVER",
            "RESTART_NODE_ON_MINIMAL_SERVERS",
            "SERVER_BINDING_TYPE_UNSPECIFIED"
          ]
        }
      },
      "id": "ServerBinding"
    },
    "InterconnectRemoteLocationList": {
      "id": "InterconnectRemoteLocationList",
      "properties": {
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectRemoteLocationList for lists of\ninterconnect remote locations.",
          "type": "string",
          "default": "compute#interconnectRemoteLocationList"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "items": {
            "$ref": "InterconnectRemoteLocation"
          },
          "type": "array",
          "description": "A list of InterconnectRemoteLocation resources."
        },
        "warning": {
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token lets you get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Response to the list request, and contains a list of interconnect remote\nlocations."
    },
    "InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone": {
      "id": "InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone",
      "properties": {
        "zone": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The name of a zone, either \"zone1\" or \"zone2\"."
        },
        "attachments": {
          "description": "Output only. [Output Only] URLs of Attachments in the given zone, to the given\nregion, on Interconnects in the given facility and metro. Every\nAttachment in the AG has such an entry.",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "description": "[Output Only] The zones that Attachments in this group are present\nin, in the given facilities.  This is inherited from their\nInterconnects.",
      "type": "object"
    },
    "InstanceTemplate": {
      "description": "Represents an Instance Template resource.\n\nGoogle Compute Engine has two Instance Template resources:\n\n* [Global](/compute/docs/reference/rest/v1/instanceTemplates)\n* [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates)\n\nYou can reuse a global instance template in\ndifferent regions whereas you can use a regional instance template in a\nspecified region only. If you want to reduce cross-region dependency or\nachieve data residency, use a regional instance template.\n\nTo create VMs, managed instance groups, and reservations, you can use either\nglobal or regional instance templates.\n\nFor more information, readInstance Templates.",
      "properties": {
        "sourceInstanceParams": {
          "description": "The source instance params to use to create this instance template.",
          "$ref": "SourceInstanceParams"
        },
        "kind": {
          "default": "compute#instanceTemplate",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceTemplate for instance templates."
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the instance template resides. Only\napplicable for regional resources."
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] The creation timestamp for this instance template inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "sourceInstance": {
          "type": "string",
          "description": "The source instance used to create the template. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n   - projects/project/zones/zone/instances/instance"
        },
        "selfLink": {
          "description": "Output only. [Output Only] The URL for this instance template. The server defines this\nURL.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "description": "Output only. [Output Only] A unique identifier for this instance template. The server\ndefines this identifier.",
          "readOnly": true
        },
        "properties": {
          "$ref": "InstanceProperties",
          "description": "The instance properties for this instance template."
        },
        "name": {
          "type": "string",
          "annotations": {
            "required": [
              "compute.instanceTemplates.insert"
            ]
          },
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash."
        }
      },
      "id": "InstanceTemplate",
      "type": "object"
    },
    "Subsetting": {
      "id": "Subsetting",
      "type": "object",
      "description": "Subsetting configuration for this BackendService.\nCurrently this is applicable only for Internal TCP/UDP load balancing,\nInternal HTTP(S) load balancing and Traffic Director.",
      "properties": {
        "policy": {
          "type": "string",
          "enumDescriptions": [
            "Subsetting based on consistent hashing.\n\nFor Traffic Director, the number of backends per backend group\n(the subset size) is based on the `subset_size` parameter.\n\nFor Internal HTTP(S) load balancing, the number of backends per backend\ngroup (the subset size) is dynamically adjusted in two cases:\n- As the number of proxy instances participating in Internal HTTP(S) load\n  balancing increases, the subset size decreases.\n- When the total number of backends in a network exceeds the capacity of\n  a single proxy instance, subset sizes are reduced automatically for\n  each service that has backend subsetting enabled.",
            "No Subsetting.\n\nClients may open connections and send traffic to all backends of this\nbackend service. This can lead to performance issues if there is\nsubstantial imbalance in the count of clients and backends."
          ],
          "enum": [
            "CONSISTENT_HASH_SUBSETTING",
            "NONE"
          ]
        }
      }
    },
    "CompositeHealthChecksScopedList": {
      "properties": {
        "compositeHealthChecks": {
          "description": "A list of CompositeHealthChecks contained in this scope.",
          "type": "array",
          "items": {
            "$ref": "CompositeHealthCheck"
          }
        },
        "warning": {
          "properties": {
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object",
          "description": "Informational warning which replaces the list of composite health checks\nwhen the list is empty."
        }
      },
      "id": "CompositeHealthChecksScopedList",
      "type": "object"
    },
    "ResourcePolicyDailyCycle": {
      "type": "object",
      "id": "ResourcePolicyDailyCycle",
      "description": "Time window specified for daily operations.",
      "properties": {
        "daysInCycle": {
          "description": "Defines a schedule with units measured in days. The value determines\nhow many days pass between the start of each cycle.",
          "format": "int32",
          "type": "integer"
        },
        "startTime": {
          "type": "string",
          "description": "Start time of the window. This must be in UTC format that resolves to one\nof 00:00, 04:00, 08:00,12:00, 16:00, or 20:00. For\nexample, both 13:00-5 and 08:00 are valid."
        },
        "duration": {
          "description": "Output only. [Output only] A predetermined duration for the window, automatically\nchosen to be the smallest possible in the given scenario.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "NotificationEndpoint": {
      "description": "Represents a notification endpoint.\n\nA notification endpoint resource defines an endpoint to receive notifications\nwhen there are status changes detected by the associated health check\nservice.\n\nFor more information, see\nHealth checks overview.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#notificationEndpoint for notification endpoints.",
          "readOnly": true,
          "default": "compute#notificationEndpoint",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] A unique identifier for this resource type. The server\ngenerates this identifier."
        },
        "grpcSettings": {
          "description": "Settings of the gRPC notification endpoint including the endpoint URL and\nthe retry duration.",
          "$ref": "NotificationEndpointGrpcSettings"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "region": {
          "description": "Output only. [Output Only] URL of the region where the notification endpoint resides.\nThis field applies only to the regional resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body.",
          "type": "string",
          "readOnly": true
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "NotificationEndpoint",
      "type": "object"
    },
    "BundledLocalSsds": {
      "id": "BundledLocalSsds",
      "properties": {
        "partitionCount": {
          "format": "int32",
          "description": "The number of partitions.",
          "type": "integer"
        },
        "defaultInterface": {
          "description": "The default disk interface if the interface is not specified.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VpnTunnelCipherSuite": {
      "type": "object",
      "id": "VpnTunnelCipherSuite",
      "properties": {
        "phase1": {
          "$ref": "VpnTunnelPhase1Algorithms"
        },
        "phase2": {
          "$ref": "VpnTunnelPhase2Algorithms"
        }
      }
    },
    "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams": {
      "properties": {
        "op": {
          "enum": [
            "CONTAINS",
            "ENDS_WITH",
            "EQUALS",
            "EQUALS_ANY",
            "STARTS_WITH"
          ],
          "enumDescriptions": [
            "The operator matches if the field value contains the specified\nvalue.",
            "The operator matches if the field value ends with the specified\nvalue.",
            "The operator matches if the field value equals the specified\nvalue.",
            "The operator matches if the field value is any value.",
            "The operator matches if the field value starts with the specified\nvalue."
          ],
          "description": "The match operator for the field.",
          "type": "string"
        },
        "val": {
          "type": "string",
          "description": "The value of the field."
        }
      },
      "type": "object",
      "id": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
    },
    "ReservationSlotStatus": {
      "id": "ReservationSlotStatus",
      "type": "object",
      "properties": {
        "runningInstances": {
          "description": "Output only. The URIs of the instances currently running on this slot.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "rdmaIpAddresses": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The RDMA IP address of the physical host.",
          "type": "array",
          "readOnly": true
        },
        "physicalTopology": {
          "$ref": "ReservationSlotPhysicalTopology",
          "description": "Output only. [Output Only] The physical topology of the reservation sub-block.",
          "readOnly": true
        }
      }
    },
    "TestFailure": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "description": "Host portion of the URL."
        },
        "expectedRedirectResponseCode": {
          "type": "integer",
          "description": "Expected HTTP status code for rule with `urlRedirect`\ncalculated by load balancer",
          "format": "int32"
        },
        "headers": {
          "items": {
            "$ref": "UrlMapTestHeader"
          },
          "type": "array",
          "description": "HTTP headers of the request."
        },
        "actualService": {
          "description": "BackendService or BackendBucket returned by load\nbalancer.",
          "type": "string"
        },
        "expectedOutputUrl": {
          "description": "The expected output URL evaluated by a load balancer containing the scheme,\nhost, path and query parameters.",
          "type": "string"
        },
        "actualOutputUrl": {
          "description": "The actual output URL evaluated by a load balancer containing the scheme,\nhost, path and query parameters.",
          "type": "string"
        },
        "actualRedirectResponseCode": {
          "format": "int32",
          "type": "integer",
          "description": "Actual HTTP status code for rule with `urlRedirect`\ncalculated by load balancer"
        },
        "path": {
          "type": "string",
          "description": "Path portion including query parameters in the URL."
        },
        "expectedService": {
          "type": "string",
          "description": "Expected BackendService or BackendBucket resource\nthe given URL should be mapped to."
        }
      },
      "id": "TestFailure"
    },
    "GlobalSetPolicyRequest": {
      "id": "GlobalSetPolicyRequest",
      "type": "object",
      "properties": {
        "bindings": {
          "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify bindings.",
          "items": {
            "$ref": "Binding"
          },
          "type": "array"
        },
        "policy": {
          "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of\nthe policy is limited to a few 10s of KB. An empty policy is in general a\nvalid policy but certain services (like Projects) might reject them.",
          "$ref": "Policy"
        },
        "etag": {
          "format": "byte",
          "type": "string",
          "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify the etag."
        }
      }
    },
    "GlobalVmExtensionPolicyLabelSelector": {
      "description": "A LabelSelector is applicable for a VM only if it matches all labels in\nthe LabelSelector.",
      "properties": {
        "inclusionLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Labels as key value pairs.\nA VM should contain all the pairs specified in this map to be selected;\nLabels within the LabelSelector are OR'ed."
        }
      },
      "type": "object",
      "id": "GlobalVmExtensionPolicyLabelSelector"
    },
    "TargetPoolsAddInstanceRequest": {
      "type": "object",
      "id": "TargetPoolsAddInstanceRequest",
      "properties": {
        "instances": {
          "description": "A full or partial URL to an instance to add to this target pool. This can\nbe a full or partial URL. For example, the following are valid URLs: \n   \n   - https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name \n   - projects/project-id/zones/zone/instances/instance-name \n   - zones/zone/instances/instance-name",
          "type": "array",
          "items": {
            "$ref": "InstanceReference"
          }
        }
      }
    },
    "LicenseCodeLicenseAlias": {
      "type": "object",
      "id": "LicenseCodeLicenseAlias",
      "properties": {
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Description of this License Code."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] URL of license corresponding to this License Code.",
          "readOnly": true
        }
      }
    },
    "InstanceGroupManagerInstanceFlexibilityPolicy": {
      "type": "object",
      "id": "InstanceGroupManagerInstanceFlexibilityPolicy",
      "properties": {
        "instanceSelections": {
          "description": "Named instance selections configuring properties that the group will use\nwhen creating new VMs.",
          "additionalProperties": {
            "$ref": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection"
          },
          "type": "object"
        }
      }
    },
    "BackendServiceCdnPolicyNegativeCachingPolicy": {
      "description": "Specify CDN TTLs for response error codes.",
      "properties": {
        "ttl": {
          "type": "integer",
          "format": "int32",
          "description": "The TTL (in seconds) for which to cache responses with the\ncorresponding status code.\nThe maximum allowed value is 1800s (30 minutes), noting that\ninfrequently accessed objects may be evicted from the cache before the\ndefined TTL."
        },
        "code": {
          "format": "int32",
          "description": "The HTTP status code to define a TTL against. Only HTTP status codes\n300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be\nspecified as values, and you cannot specify a status code more than\nonce.",
          "type": "integer"
        }
      },
      "type": "object",
      "id": "BackendServiceCdnPolicyNegativeCachingPolicy"
    },
    "RolloutWaveDetails": {
      "properties": {
        "orchestratedWaveDetails": {
          "description": "Output only. Additional details of the wave for products using the Orchestrated\nIntegration model.",
          "$ref": "RolloutWaveDetailsOrchestratedWaveDetails",
          "readOnly": true
        },
        "waveDisplayName": {
          "description": "Output only. Wave name.\nEx. wave1",
          "type": "string",
          "readOnly": true
        },
        "waveNumber": {
          "readOnly": true,
          "description": "Output only. System generated number for the wave.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Additional metadata about the status of each wave provided by the server.",
      "id": "RolloutWaveDetails"
    },
    "BackendServiceReference": {
      "type": "object",
      "id": "BackendServiceReference",
      "properties": {
        "backendService": {
          "type": "string"
        }
      }
    },
    "SnapshotSettingsAccessLocationAccessLocationPreference": {
      "type": "object",
      "id": "SnapshotSettingsAccessLocationAccessLocationPreference",
      "description": "A structure for specifying an allowed target region.",
      "properties": {
        "region": {
          "type": "string",
          "description": "Accessible region name"
        }
      }
    },
    "VpnGatewaysScopedList": {
      "type": "object",
      "id": "VpnGatewaysScopedList",
      "properties": {
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "description": "[Output Only] Informational warning which replaces the list of addresses\nwhen the list is empty."
        },
        "vpnGateways": {
          "type": "array",
          "description": "[Output Only] A list of VPN gateways contained in this scope.",
          "items": {
            "$ref": "VpnGateway"
          }
        }
      }
    },
    "SubnetworkLogConfig": {
      "type": "object",
      "description": "The available logging options for this subnetwork.",
      "properties": {
        "enable": {
          "type": "boolean",
          "description": "Whether to enable flow logging for this subnetwork. If this field is not\nexplicitly set, it will not appear in get listings. If not\nset the default behavior is determined by the org policy, if there is no\norg policy specified, then it will default to disabled.\nFlow logging isn't supported if the subnet purpose field is\nset to REGIONAL_MANAGED_PROXY."
        },
        "aggregationInterval": {
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "INTERVAL_10_MIN",
            "INTERVAL_15_MIN",
            "INTERVAL_1_MIN",
            "INTERVAL_30_SEC",
            "INTERVAL_5_MIN",
            "INTERVAL_5_SEC"
          ],
          "description": "Can only be specified if VPC flow logging for this subnetwork is enabled.\nToggles the aggregation interval for collecting flow logs. Increasing the\ninterval time will reduce the amount of generated flow logs for long\nlasting connections. Default is an interval of 5 seconds per connection.",
          "type": "string"
        },
        "metadataFields": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Can only be specified if VPC flow logs for this subnetwork is enabled and\n\"metadata\" was set to CUSTOM_METADATA."
        },
        "flowSampling": {
          "format": "float",
          "description": "Can only be specified if VPC flow logging for this subnetwork is enabled.\nThe value of the field must be in [0, 1]. Set the sampling rate of VPC\nflow logs within the subnetwork where 1.0 means all collected logs are\nreported and 0.0 means no logs are reported. Default is 0.5 unless\notherwise specified by the org policy, which means half of all collected\nlogs are reported.",
          "type": "number"
        },
        "metadata": {
          "description": "Can only be specified if VPC flow logs for this subnetwork is enabled.\nConfigures whether all, none or a subset of metadata fields should be\nadded to the reported VPC flow logs. Default isEXCLUDE_ALL_METADATA.",
          "type": "string",
          "enum": [
            "CUSTOM_METADATA",
            "EXCLUDE_ALL_METADATA",
            "INCLUDE_ALL_METADATA"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ]
        },
        "filterExpr": {
          "description": "Can only be specified if VPC flow logs for this subnetwork is enabled.\nThe filter expression is used to define which VPC flow logs should be\nexported to Cloud Logging.",
          "type": "string"
        }
      },
      "id": "SubnetworkLogConfig"
    },
    "VmExtensionPolicyAggregatedListResponse": {
      "description": "Response for the aggregated list of VM extension policies.",
      "id": "VmExtensionPolicyAggregatedListResponse",
      "properties": {
        "items": {
          "description": "A list of VmExtensionPoliciesScopedList resources.",
          "type": "object",
          "additionalProperties": {
            "$ref": "VmExtensionPoliciesScopedList",
            "description": "Name of the scope containing this set of VmExtensionPolicies."
          }
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "etag": {
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#VmExtensionPolicyAggregatedList for lists of\nVmExtensionPolicies.",
          "default": "compute#VmExtensionPolicyAggregatedList",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "CapacityAdviceRequestInstanceFlexibilityPolicy": {
      "description": "Specification of alternative, flexible instance configurations.",
      "id": "CapacityAdviceRequestInstanceFlexibilityPolicy",
      "properties": {
        "instanceSelections": {
          "type": "object",
          "additionalProperties": {
            "$ref": "CapacityAdviceRequestInstanceFlexibilityPolicyInstanceSelection"
          },
          "description": "Named instance selections to configure properties.\nThe key is an arbitrary, unique RFC1035 string that identifies the\ninstance selection."
        }
      },
      "type": "object"
    },
    "NodeTemplateList": {
      "type": "object",
      "id": "NodeTemplateList",
      "properties": {
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "NodeTemplate"
          },
          "type": "array",
          "description": "A list of NodeTemplate resources."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#nodeTemplateList",
          "description": "Output only. [Output Only] Type of resource.Always compute#nodeTemplateList\nfor lists of node templates."
        },
        "warning": {
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        }
      },
      "description": "Contains a list of node templates."
    },
    "VpnGatewayStatusTunnel": {
      "type": "object",
      "description": "Contains some information about a VPN tunnel.",
      "properties": {
        "tunnelUrl": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. URL reference to the VPN tunnel."
        },
        "localGatewayInterface": {
          "format": "uint32",
          "type": "integer",
          "description": "Output only. The VPN gateway interface this VPN tunnel is associated with.",
          "readOnly": true
        },
        "peerGatewayInterface": {
          "format": "uint32",
          "description": "Output only. The peer gateway interface this VPN tunnel is connected to, the peer\ngateway could either be an external VPN gateway or a Google Cloud\nVPN gateway.",
          "readOnly": true,
          "type": "integer"
        }
      },
      "id": "VpnGatewayStatusTunnel"
    },
    "TargetReference": {
      "id": "TargetReference",
      "type": "object",
      "properties": {
        "target": {
          "type": "string"
        }
      }
    },
    "MetadataFilterLabelMatch": {
      "id": "MetadataFilterLabelMatch",
      "type": "object",
      "description": "MetadataFilter label name value pairs that are expected\nto match corresponding labels presented as metadata to the load balancer.",
      "properties": {
        "value": {
          "description": "The value of the label must match the specified value.\n\nvalue can have a maximum length of 1024 characters.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Name of metadata label.\n\n The name can have a maximum length of 1024 characters and must be at\nleast 1 character long."
        }
      }
    },
    "InstanceListReferrers": {
      "properties": {
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          }
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "Reference"
          },
          "type": "array",
          "description": "A list of Reference resources."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#instanceListReferrers for lists of Instance referrers.",
          "default": "compute#instanceListReferrers",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "InstanceListReferrers",
      "description": "Contains a list of instance referrers.",
      "type": "object"
    },
    "BackendServiceUsedBy": {
      "properties": {
        "reference": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for resources referencing given\nBackendService like UrlMaps, TargetTcpProxies, TargetSslProxies\nand ForwardingRule.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "BackendServiceUsedBy"
    },
    "CacheInvalidationRule": {
      "id": "CacheInvalidationRule",
      "type": "object",
      "properties": {
        "path": {
          "type": "string"
        },
        "host": {
          "type": "string",
          "description": "If set, this invalidation rule will only apply to requests with a Host\nheader matching host."
        },
        "cacheTags": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "A list of cache tags used to identify cached objects.\n\n   \n   - Cache tags are specified when the response is first cached, by setting\n   the `Cache-Tag` response header at the origin.\n   - Multiple cache tags in the same invalidation request are treated as\n   Boolean `OR` - for example, `tag1 OR tag2 OR tag3`.\n   - If other fields are also specified, these are treated as Boolean `AND`\n   with any tags.\n\n\nUp to 10 tags can be specified in a single invalidation request."
        }
      }
    },
    "CapacityHistoryResponse": {
      "properties": {
        "preemptionHistory": {
          "items": {
            "$ref": "CapacityHistoryResponsePreemptionRecord"
          },
          "type": "array",
          "description": "The preemption history for the requested machine type and location."
        },
        "priceHistory": {
          "description": "The price history for the requested machine type and location.",
          "type": "array",
          "items": {
            "$ref": "CapacityHistoryResponsePriceRecord"
          }
        },
        "machineType": {
          "type": "string",
          "description": "The machine type for which the capacity history is returned."
        },
        "location": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The location (region or zone) for which the capacity history is returned.\nIt is returned as a URL - For example,https://www.googleapis.com/compute/v1/projects/project/zones/zone."
        }
      },
      "description": "Contains the capacity history.",
      "type": "object",
      "id": "CapacityHistoryResponse"
    },
    "PublicDelegatedPrefixAggregatedList": {
      "properties": {
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              }
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "type": "object",
          "additionalProperties": {
            "description": "[Output Only] Name of the scope containing this set of\nPublicDelegatedPrefixes.",
            "$ref": "PublicDelegatedPrefixesScopedList"
          },
          "description": "A list of PublicDelegatedPrefixesScopedList resources."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#publicDelegatedPrefixAggregatedList for aggregated\nlists of public delegated prefixes.",
          "type": "string",
          "readOnly": true,
          "default": "compute#publicDelegatedPrefixAggregatedList"
        }
      },
      "type": "object",
      "id": "PublicDelegatedPrefixAggregatedList"
    },
    "ReservationSubBlocksReportFaultyRequestFaultReason": {
      "description": "The reason for the fault experienced with the subBlock.",
      "properties": {
        "description": {
          "description": "The description of the fault experienced with the subBlock.",
          "type": "string"
        },
        "behavior": {
          "description": "The behavior of the fault experienced with the subBlock.",
          "enum": [
            "FAULT_BEHAVIOR_UNSPECIFIED",
            "GPU_ERROR",
            "NVSWITCH_FAULT_CONTROLLER_ERROR",
            "NVSWITCH_FAULT_DEGRADED_BANDWIDTH",
            "NVSWITCH_FAULT_SWITCH_ERROR",
            "PERFORMANCE",
            "SILENT_DATA_CORRUPTION",
            "SWITCH_FAILURE"
          ],
          "enumDescriptions": [
            "",
            "The subBlock experienced a GPU error.",
            "The subBlock experienced an NVSwitch controller error.",
            "The subBlock experienced NVSwitch degraded bandwidth.",
            "The subBlock experienced an NVSwitch switch error.",
            "The subBlock experienced performance issues.",
            "The subBlock experienced silent data corruption.",
            "The subBlock experienced a switch failure."
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "ReservationSubBlocksReportFaultyRequestFaultReason"
    },
    "ServiceAttachment": {
      "id": "ServiceAttachment",
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.",
          "format": "uint64"
        },
        "producerForwardingRule": {
          "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is\nserving the endpoint identified by this service attachment.",
          "deprecated": true,
          "type": "string"
        },
        "consumerAcceptLists": {
          "type": "array",
          "items": {
            "$ref": "ServiceAttachmentConsumerProjectLimit"
          },
          "description": "Specifies which consumer projects or networks are allowed to connect to the\nservice attachment. Each project or network has a connection limit. A given\nservice attachment can manage connections at either the project or network\nlevel. Therefore, both the accept and reject lists for a given service\nattachment must contain either only projects or only networks or only\nendpoints."
        },
        "kind": {
          "default": "compute#serviceAttachment",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#serviceAttachment for service attachments.",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "connectionPreference": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "description": "The connection preference of service attachment. The value can be set\nto ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC\nservice attachment is one that always accepts the connection from consumer\nforwarding rules.",
          "enum": [
            "ACCEPT_AUTOMATIC",
            "ACCEPT_MANUAL",
            "CONNECTION_PREFERENCE_UNSPECIFIED"
          ]
        },
        "natSubnets": {
          "description": "An array of URLs where each entry is the URL of a subnet provided\nby the service producer to use for NAT in this service attachment.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pscServiceAttachmentId": {
          "readOnly": true,
          "$ref": "Uint128",
          "description": "Output only. [Output Only] An 128-bit global unique ID of the PSC service attachment."
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "metadata": {
          "description": "Metadata of the service attachment.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "region": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] URL of the region where the service attachment resides.\nThis field applies only to the region resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body."
        },
        "reconcileConnections": {
          "description": "This flag determines whether a consumer accept/reject list change can\nreconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.\n   \n   \n    -  If false, connection policy update will only affect existing PENDING\n    PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched\n    regardless how the connection policy is modified . \n   -  If true,\n    update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For\n    example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project\n    is added to the reject list.\n\n\nFor newly created service attachment, this boolean defaults to false.",
          "type": "boolean"
        },
        "targetService": {
          "description": "The URL of a service serving the endpoint identified by this service\nattachment.",
          "type": "string"
        },
        "connectedEndpoints": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "ServiceAttachmentConnectedEndpoint"
          },
          "description": "Output only. [Output Only] An array of connections for all the consumers connected to\nthis service attachment."
        },
        "fingerprint": {
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a ServiceAttachment. An up-to-date fingerprint must\nbe provided in order to patch/update the ServiceAttachment; otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nServiceAttachment.",
          "type": "string",
          "format": "byte"
        },
        "domainNames": {
          "type": "array",
          "description": "If specified, the domain name will be used during the integration between\nthe PSC connected endpoints and the Cloud DNS. For example, this is a valid\ndomain name: \"p.mycompany.com.\". Current max number of domain names\nsupported is 1.",
          "items": {
            "type": "string"
          }
        },
        "propagatedConnectionLimit": {
          "description": "The number of consumer spokes that connected Private Service Connect\nendpoints can be propagated to through Network Connectivity Center. This\nlimit lets the service producer limit how many propagated Private Service\nConnect connections can be established to this service attachment from a\nsingle consumer.\n\nIf the connection preference of the service attachment is ACCEPT_MANUAL,\nthe limit applies to each project or network that is listed in the consumer\naccept list. If the connection preference of the service attachment is\nACCEPT_AUTOMATIC, the limit applies to each project that contains a\nconnected endpoint.\n\nIf unspecified, the default propagated connection limit is 250.",
          "type": "integer",
          "format": "uint32"
        },
        "enableProxyProtocol": {
          "type": "boolean",
          "description": "If true, enable the proxy protocol which is for supplying client TCP/IP\naddress data in TCP connections that traverse proxies on their way to\ndestination servers."
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "consumerRejectLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specifies a list of projects or networks that are not allowed to connect to\nthis service attachment. The project can be specified using its project ID\nor project number and the network can be specified using its URL. A given\nservice attachment can manage connections at either the project or network\nlevel. Therefore, both the reject and accept lists for a given service\nattachment must contain either only projects or only networks."
        },
        "name": {
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "annotations": {
            "required": [
              "compute.serviceAttachments.insert"
            ]
          },
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "natIpsPerEndpoint": {
          "type": "integer",
          "description": "The number of NAT IP addresses to be allocated per connected endpoint.\nIf not specified, the default value is 1.",
          "format": "uint32"
        }
      },
      "description": "Represents a ServiceAttachment resource.\n\nA service attachment represents a service that a producer has exposed.\nIt encapsulates the load balancer which fronts the service runs and\na list of NAT IP ranges that the producers uses to represent\nthe consumers connecting to the service.",
      "type": "object"
    },
    "InstanceGroupManagerStatus": {
      "id": "InstanceGroupManagerStatus",
      "properties": {
        "allInstancesConfig": {
          "readOnly": true,
          "$ref": "InstanceGroupManagerStatusAllInstancesConfig",
          "description": "Output only. Status of all-instances configuration on the group."
        },
        "isStable": {
          "description": "Output only. A bit indicating whether the managed instance group is in a\nstable state. A stable state means that: none of the instances in the\nmanaged instance group is currently undergoing any type of change (for\nexample, creation, restart, or deletion); no future changes are scheduled\nfor instances in the managed instance group; and the managed instance\ngroup itself is not being modified.",
          "type": "boolean",
          "readOnly": true
        },
        "versionTarget": {
          "$ref": "InstanceGroupManagerStatusVersionTarget",
          "readOnly": true,
          "description": "Output only. A status of consistency of Instances' versions with their\ntarget version specified by version field on Instance Group\nManager."
        },
        "stateful": {
          "description": "Output only. Stateful status of the given Instance Group Manager.",
          "readOnly": true,
          "$ref": "InstanceGroupManagerStatusStateful"
        },
        "appliedAcceleratorTopologies": {
          "items": {
            "$ref": "InstanceGroupManagerStatusAcceleratorTopology"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. The accelerator topology applied to this MIG.\nCurrently only one accelerator topology is supported."
        },
        "bulkInstanceOperation": {
          "readOnly": true,
          "description": "Output only. The status of bulk instance operation.",
          "$ref": "InstanceGroupManagerStatusBulkInstanceOperation"
        },
        "currentInstanceStatuses": {
          "$ref": "InstanceGroupManagerStatusInstanceStatusSummary",
          "readOnly": true,
          "description": "Output only. The list of instance statuses and the number of instances\nin this managed instance group that have the status. Currently only shown\nfor TPU MIGs"
        },
        "autoscaler": {
          "description": "Output only. The URL of theAutoscaler\nthat targets this instance group manager.",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "PreviewFeatureStatus": {
      "id": "PreviewFeatureStatus",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Output only. [Output Only] The description of the feature.",
          "readOnly": true
        },
        "releaseStatus": {
          "$ref": "PreviewFeatureStatusReleaseStatus"
        },
        "helpLink": {
          "description": "Output only. [Output Only] Link to the public documentation for the feature.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "[Output Only] The status of the feature."
    },
    "HealthCheck": {
      "id": "HealthCheck",
      "type": "object",
      "description": "Represents a health check resource.\n\nGoogle Compute Engine has two health check resources:\n\n* [Regional](/compute/docs/reference/rest/v1/regionHealthChecks)\n* [Global](/compute/docs/reference/rest/v1/healthChecks)\n\nThese health check resources can be used for load balancing and for\nautohealing VMs in a managed instance group (MIG).\n\n**Load balancing**\n\nHealth check requirements vary depending on the type of load balancer. For\ndetails about the type of health check supported for\neach load balancer and corresponding backend type,\nsee Health\nchecks overview: Load balancer guide.\n\n**Autohealing in MIGs**\n\nThe health checks that you use for autohealing VMs in a MIG can be either\nregional or global. For more information, see  Set up an\napplication health check and autohealing.\n\nFor more information, seeHealth checks\noverview.",
      "properties": {
        "grpcHealthCheck": {
          "$ref": "GRPCHealthCheck"
        },
        "name": {
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nFor example, a name that is 1-63 characters long, matches the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with\nRFC1035. This regular expression describes a name where the first\ncharacter is a lowercase letter, and all following characters are a dash,\nlowercase letter, or digit, except the last character, which isn't a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "timeoutSec": {
          "type": "integer",
          "format": "int32",
          "description": "How long (in seconds) to wait before claiming failure. The default value is\n5 seconds. It is invalid for timeoutSec to have greater\nvalue than checkIntervalSec."
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "httpsHealthCheck": {
          "$ref": "HTTPSHealthCheck"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp in3339\ntext format.",
          "readOnly": true
        },
        "region": {
          "description": "Output only. [Output Only] Region where the health check resides.  Not applicable to\nglobal health checks.",
          "readOnly": true,
          "type": "string"
        },
        "sslHealthCheck": {
          "$ref": "SSLHealthCheck"
        },
        "sourceRegions": {
          "description": "The list of cloud regions from which health checks are performed. If any\nregions are specified, then exactly 3 regions should be specified. The\nregion names must be valid names of Google Cloud regions.\nThis can only be set for global health check.\nIf this list is non-empty, then there are restrictions\non what other health check fields are supported and what other resources\ncan use this health check:\n   \n   - SSL, HTTP2, GRPC, and GRPC_WITH_TLS protocols are not supported.\n   - The TCP request field is not supported.\n   - The proxyHeader field for HTTP, HTTPS, and TCP is not\n   supported.\n   - The checkIntervalSec field must be at least 30.\n   - The health check cannot be used with BackendService nor with managed\n   instance group auto-healing.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "httpHealthCheck": {
          "$ref": "HTTPHealthCheck"
        },
        "unhealthyThreshold": {
          "format": "int32",
          "description": "A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.",
          "type": "integer"
        },
        "logConfig": {
          "description": "Configure logging on this health check.",
          "$ref": "HealthCheckLogConfig"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "type": {
          "description": "Specifies the type of the healthCheck, either TCP,SSL, HTTP, HTTPS,HTTP2, GRPC or GRPC_WITH_TLS.\nExactly one of the protocol-specific health check fields must be specified,\nwhich must match type field.",
          "enum": [
            "GRPC",
            "GRPC_WITH_TLS",
            "HTTP",
            "HTTP2",
            "HTTPS",
            "INVALID",
            "SSL",
            "TCP"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ]
        },
        "tcpHealthCheck": {
          "$ref": "TCPHealthCheck"
        },
        "grpcTlsHealthCheck": {
          "$ref": "GRPCTLSHealthCheck"
        },
        "id": {
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "healthyThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "A so-far unhealthy instance will be marked healthy after this\nmany consecutive successes. The default value is 2."
        },
        "http2HealthCheck": {
          "$ref": "HTTP2HealthCheck"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Type of the resource.",
          "default": "compute#healthCheck"
        },
        "checkIntervalSec": {
          "description": "How often (in seconds) to send a health check. The default value is 5\nseconds.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "RoutePolicyPolicyTerm": {
      "properties": {
        "match": {
          "$ref": "Expr",
          "description": "CEL expression evaluated against a route to determine if this term\napplies. When not set, the term applies to all\nroutes."
        },
        "actions": {
          "description": "CEL expressions to evaluate to modify a route when this term matches.",
          "items": {
            "$ref": "Expr"
          },
          "type": "array"
        },
        "priority": {
          "description": "The evaluation priority for this term, which must be between 0\n(inclusive) and 2^31 (exclusive), and unique within the list.",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "RoutePolicyPolicyTerm",
      "type": "object"
    },
    "ReservationSlot": {
      "description": "Represents a reservation slot resource.",
      "id": "ReservationSlot",
      "type": "object",
      "properties": {
        "selfLinkWithId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] A server-defined URL for this resource with the resource ID."
        },
        "physicalTopology": {
          "readOnly": true,
          "description": "Output only. [Output Only] The physical topology of the reservation slot.",
          "$ref": "ReservationSlotPhysicalTopology",
          "deprecated": true
        },
        "status": {
          "readOnly": true,
          "description": "Output only. [Output Only] The status of the reservation slot.",
          "$ref": "ReservationSlotStatus"
        },
        "shareSettings": {
          "description": "Specify share settings to create a shared slot. Set to empty\nto inherit the share settings from a parent resource.",
          "$ref": "ShareSettings"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the reservation slot."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] A server-defined fully-qualified URL for this resource."
        },
        "zone": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The zone in which the reservation slot resides."
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for this resource. This identifier is\ndefined by the server.",
          "type": "string",
          "readOnly": true,
          "format": "uint64"
        },
        "state": {
          "type": "string",
          "description": "Output only. [Output Only] The state of the reservation slot.",
          "readOnly": true,
          "enumDescriptions": [
            "The reservation slot has allocated all its resources.",
            "The resources are being allocated for the reservation slot.",
            "The reservation slot is currently being deleted.",
            "",
            "The reservation slot is currently unavailable."
          ],
          "enum": [
            "ACTIVE",
            "CREATING",
            "DELETING",
            "STATE_UNSPECIFIED",
            "UNAVAILABLE"
          ]
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The creation timestamp, formatted asRFC3339 text."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#reservationSlot",
          "type": "string",
          "description": "Output only. [Output Only] The type of resource. Alwayscompute#reservationSlot for reservation slots."
        }
      }
    },
    "BackendServiceOrchestrationInfo": {
      "id": "BackendServiceOrchestrationInfo",
      "type": "object",
      "description": "A message containing information about the resource or system that manages\nthe backend service.",
      "properties": {
        "resourceUri": {
          "description": "The resource URI of the resource or system that manages the backend\nservice.",
          "type": "string"
        }
      }
    },
    "BackendServiceListUsable": {
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "items": {
          "type": "array",
          "description": "A list of BackendService resources.",
          "items": {
            "$ref": "BackendService"
          }
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            }
          }
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#usableBackendServiceList for lists of usable backend\nservices.",
          "default": "compute#usableBackendServiceList",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Contains a list of usable BackendService resources.",
      "id": "BackendServiceListUsable",
      "type": "object"
    },
    "InterconnectRemoteLocation": {
      "properties": {
        "description": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] An optional description of the resource."
        },
        "city": {
          "readOnly": true,
          "description": "Output only. [Output Only] Metropolitan area designator that indicates which city an\ninterconnect is located.\nFor example: \"Chicago, IL\", \"Amsterdam, Netherlands\".",
          "type": "string"
        },
        "maxLagSize10Gbps": {
          "format": "int32",
          "description": "Output only. [Output Only]\nThe maximum number of 10 Gbps ports supported in a link aggregation group\n(LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed\nmax_lag_size_10_gbps.",
          "readOnly": true,
          "type": "integer"
        },
        "maxLagSize100Gbps": {
          "format": "int32",
          "readOnly": true,
          "description": "Output only. [Output Only]\nThe maximum number of 100 Gbps ports supported in a link aggregation group\n(LAG). When linkType is 100 Gbps, requestedLinkCount cannot exceed\nmax_lag_size_100_gbps.",
          "type": "integer"
        },
        "maxLagSize400Gbps": {
          "type": "integer",
          "description": "Output only. [Output Only]\nThe maximum number of 400 Gbps ports supported in a link aggregation group\n(LAG). When linkType is 400 Gbps, requestedLinkCount cannot exceed\nmax_lag_size_400_gbps.",
          "format": "int32",
          "readOnly": true
        },
        "permittedConnections": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "InterconnectRemoteLocationPermittedConnections"
          },
          "description": "Output only. [Output Only] Permitted connections."
        },
        "id": {
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "readOnly": true,
          "format": "uint64"
        },
        "facilityProviderFacilityId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] A provider-assigned Identifier for this facility (e.g.,\nAshburn-DC1)."
        },
        "remoteService": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Indicates the service provider present at the remote\nlocation. Example values: \"Amazon Web Services\", \"Microsoft Azure\"."
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#interconnectRemoteLocation for interconnect remote\nlocations.",
          "default": "compute#interconnectRemoteLocation",
          "readOnly": true
        },
        "constraints": {
          "description": "Output only. [Output Only] Constraints on the parameters for creating Cross-Cloud\nInterconnect and associated InterconnectAttachments.",
          "readOnly": true,
          "$ref": "InterconnectRemoteLocationConstraints"
        },
        "attachmentConfigurationConstraints": {
          "readOnly": true,
          "description": "Output only. [Output Only] Subset of fields from InterconnectAttachment's\n|configurationConstraints| field that apply to all attachments for this\nremote location.",
          "$ref": "InterconnectAttachmentConfigurationConstraints"
        },
        "facilityProvider": {
          "type": "string",
          "description": "Output only. [Output Only] The name of the provider for this facility (e.g., EQUINIX).",
          "readOnly": true
        },
        "peeringdbFacilityId": {
          "description": "Output only. [Output Only] The peeringdb identifier for this facility (corresponding\nwith a netfac type in peeringdb).",
          "type": "string",
          "readOnly": true
        },
        "address": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The postal address of the Point of Presence, each line in\nthe address is separated by a newline character."
        },
        "name": {
          "type": "string",
          "description": "Output only. [Output Only] Name of the resource.",
          "readOnly": true
        },
        "creationTimestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "status": {
          "enumDescriptions": [
            "The InterconnectRemoteLocation is available for provisioning new\nCross-Cloud Interconnects.",
            "The InterconnectRemoteLocation is closed for provisioning new\nCross-Cloud Interconnects."
          ],
          "description": "Output only. [Output Only] The status of this InterconnectRemoteLocation, which can take\none of the following values:\n   \n   - CLOSED: The InterconnectRemoteLocation is closed and is unavailable\n   for provisioning new Cross-Cloud Interconnects. \n   - AVAILABLE: The\n   InterconnectRemoteLocation is available for provisioning new\n   Cross-Cloud Interconnects.",
          "enum": [
            "AVAILABLE",
            "CLOSED"
          ],
          "readOnly": true,
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "continent": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "readOnly": true,
          "description": "Output only. [Output Only] Continent for this location, which can take one of the\nfollowing values:\n   \n   - AFRICA\n   - ASIA_PAC\n   - EUROPE\n   - NORTH_AMERICA\n   - SOUTH_AMERICA",
          "enum": [
            "AFRICA",
            "ASIA_PAC",
            "EUROPE",
            "NORTH_AMERICA",
            "SOUTH_AMERICA"
          ]
        },
        "lacp": {
          "enum": [
            "LACP_SUPPORTED",
            "LACP_UNSUPPORTED"
          ],
          "description": "Output only. [Output Only] Link Aggregation Control Protocol (LACP) constraints, which\ncan take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "LACP_SUPPORTED: LACP is supported, and enabled by default on\nthe Cross-Cloud Interconnect.",
            "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this\nport. GetDiagnostics shows bundleAggregationType as \"static\". GCP does\nnot support LAGs without LACP, so requestedLinkCount must be 1."
          ]
        }
      },
      "type": "object",
      "id": "InterconnectRemoteLocation",
      "description": "Represents a Cross-Cloud Interconnect Remote Location resource.\n\nYou can use this resource to find remote location details about an\nInterconnect attachment (VLAN)."
    },
    "ExternalVpnGateway": {
      "id": "ExternalVpnGateway",
      "type": "object",
      "description": "Represents an external VPN gateway.\n\nExternal VPN gateway is the on-premises VPN gateway(s) or another cloud\nprovider's VPN gateway that connects to your Google Cloud VPN gateway.\n\nTo create a highly available VPN from Google Cloud Platform to your\nVPN gateway or another cloud provider's VPN gateway, you must create a\nexternal VPN gateway resource with information about the other gateway.\n\nFor more information about using external VPN gateways, see\nCreating an HA VPN gateway and tunnel pair to a peer VPN.",
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#externalVpnGateway",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#externalVpnGateway for externalVpnGateways."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "labels": {
          "type": "object",
          "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "labelFingerprint": {
          "format": "byte",
          "type": "string",
          "description": "A fingerprint for the labels being applied to this ExternalVpnGateway,\nwhich is essentially a hash of the labels set used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an ExternalVpnGateway."
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "ExternalVpnGatewayParams"
        },
        "interfaces": {
          "items": {
            "$ref": "ExternalVpnGatewayInterface"
          },
          "description": "A list of interfaces for this external VPN gateway.\n\nIf your peer-side gateway is an on-premises gateway and non-AWS cloud\nproviders' gateway, at most two interfaces can be provided for an external\nVPN gateway. If your peer side is an AWS virtual private gateway, four\ninterfaces should be provided for an external VPN gateway.",
          "type": "array"
        },
        "name": {
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.externalVpnGateways.insert"
            ]
          }
        },
        "redundancyType": {
          "enum": [
            "FOUR_IPS_REDUNDANCY",
            "SINGLE_IP_INTERNALLY_REDUNDANT",
            "TWO_IPS_REDUNDANCY"
          ],
          "description": "Indicates the user-supplied redundancy type of this external VPN gateway.",
          "enumDescriptions": [
            "The external VPN gateway has four public IP addresses; at the time of\nwriting this API, the AWS virtual private gateway is an example which has\nfour public IP addresses for high availability connections; there should\nbe two VPN connections in the AWS virtual private gateway , each AWS VPN\nconnection has two public IP addresses;  please make sure to put two\npublic IP addresses from one AWS VPN connection into interfaces 0 and 1\nof this external VPN gateway, and put the other two public IP addresses\nfrom another AWS VPN connection into interfaces 2 and 3 of this external\nVPN gateway. When displaying highly available configuration status\nfor the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN\ngateway, Google will always detect whether interfaces 0 and 1 are\nconnected on one interface of HA Cloud VPN gateway, and detect whether\ninterfaces 2 and 3 are connected to another interface of the HA Cloud VPN\ngateway.",
            "The external VPN gateway has only one public IP address which internally\nprovide redundancy or failover.",
            "The external VPN gateway has two public IP addresses which are redundant\nwith each other, the following two types of setup on your on-premises\nside would have this type of redundancy:\n(1) Two separate on-premises gateways, each with one public IP address,\n    the two on-premises gateways are redundant with each other.\n(2) A single on-premise gateway with two public IP addresses that are\n    redundant with eatch other."
          ],
          "type": "string"
        }
      }
    },
    "InstanceGroupList": {
      "properties": {
        "nextPageToken": {
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string",
          "readOnly": true
        },
        "items": {
          "description": "A list of InstanceGroup resources.",
          "items": {
            "$ref": "InstanceGroup"
          },
          "type": "array"
        },
        "kind": {
          "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceGroupList for instance group lists.",
          "type": "string",
          "readOnly": true,
          "default": "compute#instanceGroupList"
        },
        "warning": {
          "description": "Output only. [Output Only] Informational warning message.",
          "type": "object",
          "readOnly": true,
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              }
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          }
        },
        "id": {
          "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.",
          "readOnly": true,
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "A list of InstanceGroup resources.",
      "type": "object",
      "id": "InstanceGroupList"
    },
    "InterconnectGroupsOperationalStatus": {
      "description": "Request to get the status of the interconnect group with extra detail.",
      "type": "object",
      "properties": {
        "groupStatus": {
          "enum": [
            "DEGRADED",
            "FULLY_DOWN",
            "FULLY_UP",
            "GROUPS_STATUS_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "description": "Output only. Summarizes the status of the group.",
          "type": "string",
          "readOnly": true
        },
        "operational": {
          "readOnly": true,
          "$ref": "InterconnectGroupConfigured",
          "description": "Output only. The operational state of the group, including only active Interconnects."
        },
        "configured": {
          "description": "Output only. The configuration analysis, as returned by Get.",
          "readOnly": true,
          "$ref": "InterconnectGroupConfigured"
        },
        "interconnectStatuses": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "InterconnectGroupsOperationalStatusInterconnectStatus"
          }
        },
        "intent": {
          "readOnly": true,
          "description": "Output only. The intent of the resource, as returned by Get.",
          "$ref": "InterconnectGroupIntent"
        }
      },
      "id": "InterconnectGroupsOperationalStatus"
    },
    "ReservationBlockPhysicalTopologyInstance": {
      "id": "ReservationBlockPhysicalTopologyInstance",
      "properties": {
        "instanceId": {
          "format": "uint64",
          "description": "The InstanceId of the instance",
          "type": "string"
        },
        "physicalHostTopology": {
          "$ref": "ReservationBlockPhysicalTopologyInstancePhysicalHostTopology",
          "description": "Output only. The PhysicalHostTopology of instances within a Block resource.",
          "readOnly": true
        },
        "projectId": {
          "description": "Project where the instance lives",
          "type": "string",
          "format": "uint64"
        }
      },
      "description": "The instances information for a given Block",
      "type": "object"
    },
    "RoutersGetRoutePolicyResponse": {
      "type": "object",
      "id": "RoutersGetRoutePolicyResponse",
      "properties": {
        "resource": {
          "$ref": "RoutePolicy"
        }
      }
    },
    "CrossSiteNetwork": {
      "properties": {
        "description": {
          "description": "An optional description of the cross-site network.",
          "type": "string"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#crossSiteNetwork for cross-site networks.",
          "readOnly": true,
          "type": "string",
          "default": "compute#crossSiteNetwork"
        },
        "id": {
          "readOnly": true,
          "format": "uint64",
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier."
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "CrossSiteNetwork",
      "description": "A resource that represents a cross-site network.\n\nYou can use cross-site networks to connect your on-premises networks to\neach other through Interconnect connections."
    },
    "AWSV4Signature": {
      "id": "AWSV4Signature",
      "type": "object",
      "properties": {
        "accessKey": {
          "type": "string",
          "description": "The access key used for s3 bucket authentication. Required for updating or\ncreating a backend that uses AWS v4 signature authentication, but will not\nbe returned as part of the configuration when queried with a REST API GET\nrequest.\n\n@InputOnly"
        },
        "accessKeyVersion": {
          "description": "The optional version identifier for the access key. You can use this to\nkeep track of different iterations of your access key.",
          "type": "string"
        },
        "accessKeyId": {
          "type": "string",
          "description": "The identifier of an access key used for s3 bucket authentication."
        },
        "originRegion": {
          "type": "string",
          "description": "The name of the cloud region of your origin. This is a free-form field with\nthe name of the region your cloud uses to host your origin.  For example,\n\"us-east-1\" for AWS or \"us-ashburn-1\" for OCI."
        }
      },
      "description": "Contains the configurations necessary to generate a signature for access to\nprivate storage buckets that support Signature Version 4 for authentication.\nThe service name for generating the authentication header will always default\nto 's3'."
    },
    "BackendServiceNetworkPassThroughLbTrafficPolicy": {
      "type": "object",
      "id": "BackendServiceNetworkPassThroughLbTrafficPolicy",
      "properties": {
        "zonalAffinity": {
          "$ref": "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity",
          "description": "When configured, new connections are load balanced across healthy backend\nendpoints in the local zone."
        }
      }
    },
    "InstanceGroupManagerStatusStatefulPerInstanceConfigs": {
      "type": "object",
      "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs",
      "properties": {
        "allEffective": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. A bit indicating if all of the group's per-instance configurations\n(listed in the output of a listPerInstanceConfigs API call) have\nstatus EFFECTIVE or there are no per-instance-configs."
        }
      }
    },
    "TargetVpnGateway": {
      "properties": {
        "labelFingerprint": {
          "format": "byte",
          "description": "A fingerprint for the labels being applied to this TargetVpnGateway, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a TargetVpnGateway.",
          "type": "string"
        },
        "region": {
          "description": "[Output Only] URL of the region where the target VPN gateway resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetVpnGateway for target VPN gateways.",
          "type": "string",
          "default": "compute#targetVpnGateway"
        },
        "status": {
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "CREATING",
            "DELETING",
            "FAILED",
            "READY"
          ],
          "description": "[Output Only] The status of the VPN gateway,\nwhich can be one of the following: CREATING, READY, FAILED, or DELETING.",
          "type": "string"
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "annotations": {
            "required": [
              "compute.targetVpnGateways.insert"
            ]
          },
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "params": {
          "$ref": "TargetVpnGatewayParams",
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload."
        },
        "forwardingRules": {
          "description": "[Output Only] A list of URLs to the ForwardingRule resources.\nForwardingRules are created usingcompute.forwardingRules.insert and associated with a VPN\ngateway.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "format": "uint64"
        },
        "labels": {
          "type": "object",
          "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "tunnels": {
          "description": "[Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are\ncreated using the compute.vpntunnels.insert method and\nassociated with a VPN gateway.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "network": {
          "description": "URL of the network to which this VPN gateway is attached. Provided by the\nclient when the VPN gateway is created.",
          "annotations": {
            "required": [
              "compute.targetVpnGateways.insert"
            ]
          },
          "type": "string"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents a Target VPN Gateway resource.\n\nThe target VPN gateway resource represents a Classic Cloud VPN gateway.\nFor more information, read thethe\nCloud VPN Overview.",
      "id": "TargetVpnGateway"
    },
    "TargetTcpProxiesSetBackendServiceRequest": {
      "id": "TargetTcpProxiesSetBackendServiceRequest",
      "type": "object",
      "properties": {
        "service": {
          "description": "The URL of the new BackendService resource for the targetTcpProxy.",
          "type": "string"
        }
      }
    },
    "DiskTypesScopedList": {
      "type": "object",
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning which replaces the list of disk types\nwhen the list is empty.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "type": "object"
        },
        "diskTypes": {
          "items": {
            "$ref": "DiskType"
          },
          "type": "array",
          "description": "[Output Only] A list of disk types contained in this scope."
        }
      },
      "id": "DiskTypesScopedList"
    },
    "CapacityAdviceRequestInstanceFlexibilityPolicyInstanceSelectionAttachedDisk": {
      "description": "Attached disk configuration.",
      "type": "object",
      "id": "CapacityAdviceRequestInstanceFlexibilityPolicyInstanceSelectionAttachedDisk",
      "properties": {
        "type": {
          "enum": [
            "DISK_TYPE_UNSPECIFIED",
            "SCRATCH"
          ],
          "description": "Specifies the type of the disk.",
          "enumDescriptions": [
            "Default value, unspecified disk type.",
            "Scratch disk (Local SSD)."
          ],
          "type": "string"
        }
      }
    },
    "CommitmentsScopedList": {
      "properties": {
        "commitments": {
          "type": "array",
          "items": {
            "$ref": "Commitment"
          },
          "description": "[Output Only] The list of commitments contained in this scope."
        },
        "warning": {
          "description": "[Output Only] Informational warning which replaces the list of commitments\nwhen the list is empty.",
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          },
          "type": "object"
        }
      },
      "id": "CommitmentsScopedList",
      "type": "object"
    },
    "Metadata": {
      "type": "object",
      "properties": {
        "fingerprint": {
          "format": "byte",
          "type": "string",
          "description": "Specifies a fingerprint for this request, which is essentially a hash of\nthe metadata's contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update metadata. You must always provide an\nup-to-date fingerprint hash in order to update or change metadata,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve the resource."
        },
        "kind": {
          "default": "compute#metadata",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Always compute#metadata\nfor metadata."
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "description": "Key for the metadata entry. Keys must conform to the following\nregexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length.\nThis is reflected as part of a URL in the metadata server. Additionally, to\navoid ambiguity, keys must not conflict with any other metadata keys\nfor the project.",
                "pattern": "[a-zA-Z0-9-_]{1,128}",
                "annotations": {
                  "required": [
                    "compute.instances.insert",
                    "compute.projects.setCommonInstanceMetadata"
                  ]
                }
              },
              "value": {
                "annotations": {
                  "required": [
                    "compute.instances.insert",
                    "compute.projects.setCommonInstanceMetadata"
                  ]
                },
                "description": "Value for the metadata entry. These are free-form strings, and only\nhave meaning as interpreted by the image running in the instance. The\nonly restriction placed on values is that their size must be less than\nor equal to 262144 bytes (256 KiB).",
                "type": "string"
              }
            },
            "description": "Metadata"
          },
          "description": "Array of key/value pairs. The total size of all keys and values must be\nless than 512 KB."
        }
      },
      "id": "Metadata",
      "description": "A metadata key/value entry."
    },
    "ResourcePolicyResourceStatus": {
      "id": "ResourcePolicyResourceStatus",
      "properties": {
        "instanceSchedulePolicy": {
          "$ref": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus",
          "description": "Output only. [Output Only] Specifies a set of output values reffering to\nthe instance_schedule_policy system status.\nThis field should have the same name as corresponding policy field.",
          "readOnly": true
        }
      },
      "description": "Contains output only fields.\nUse this sub-message for all output fields set on ResourcePolicy.\nThe internal structure of this \"status\" field should mimic the structure\nof ResourcePolicy proto specification.",
      "type": "object"
    },
    "InstanceGroupManagerAggregatedList": {
      "id": "InstanceGroupManagerAggregatedList",
      "properties": {
        "items": {
          "additionalProperties": {
            "description": "Output only. The name of the scope that contains this set of managed instance groups.",
            "$ref": "InstanceGroupManagersScopedList"
          },
          "type": "object",
          "description": "A list of InstanceGroupManagersScopedList resources."
        },
        "nextPageToken": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. The resource type, which is alwayscompute#instanceGroupManagerAggregatedList for an aggregated\nlist of managed instance groups.",
          "default": "compute#instanceGroupManagerAggregatedList",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. Unreachable resources.",
          "readOnly": true
        },
        "warning": {
          "description": "Output only. Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              }
            }
          },
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. Unique identifier for the resource; defined by the server.",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "SerialPortOutput": {
      "type": "object",
      "id": "SerialPortOutput",
      "properties": {
        "start": {
          "description": "The starting byte position of the output that was returned.\nThis should match the start parameter sent with the request.\nIf the serial console output exceeds the size of the buffer (1 MB), older\noutput is overwritten by newer content. The output start value will\nindicate the byte position of the output that was returned, which might be\ndifferent than the `start` value that was specified in the request.",
          "format": "int64",
          "type": "string"
        },
        "contents": {
          "type": "string",
          "description": "[Output Only] The contents of the console output."
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "kind": {
          "default": "compute#serialPortOutput",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#serialPortOutput for serial port output.",
          "readOnly": true,
          "type": "string"
        },
        "next": {
          "format": "int64",
          "description": "[Output Only] The position of the next byte of content, regardless of\nwhether the content exists, following the output returned in the `contents`\nproperty. Use this value in the next request as the start\nparameter.",
          "type": "string"
        }
      },
      "description": "An instance serial console output."
    },
    "PreservedState": {
      "properties": {
        "internalIPs": {
          "description": "Preserved internal IPs defined for this instance.\nThis map is keyed with the name of the network interface.",
          "additionalProperties": {
            "$ref": "PreservedStatePreservedNetworkIp"
          },
          "type": "object"
        },
        "metadata": {
          "description": "Preserved metadata defined for this instance.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "disks": {
          "type": "object",
          "description": "Preserved disks defined for this instance.\nThis map is keyed with the device names of the disks.",
          "additionalProperties": {
            "$ref": "PreservedStatePreservedDisk"
          }
        },
        "externalIPs": {
          "additionalProperties": {
            "$ref": "PreservedStatePreservedNetworkIp"
          },
          "type": "object",
          "description": "Preserved external IPs defined for this instance.\nThis map is keyed with the name of the network interface."
        }
      },
      "description": "Preserved state for a given instance.",
      "id": "PreservedState",
      "type": "object"
    },
    "ReliabilityRisk": {
      "properties": {
        "id": {
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "details": {
          "description": "[Output Only] Details of the reliability risk resource",
          "$ref": "RiskDetails"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp in RFC3339\ntext format.",
          "readOnly": true
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource. The name must be 1-63 characters long and\ncomply with RFC1035."
        },
        "selfLinkWithId": {
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.",
          "type": "string",
          "readOnly": true
        },
        "recommendation": {
          "description": "The recommendation to mitigate the risk.",
          "$ref": "RiskRecommendation"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Always compute#reliabilityRisk\nfor reliability risks.",
          "default": "compute#reliabilityRisk",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "An optional textual description of the resource; provided when the\nresource is created."
        }
      },
      "description": "Represents a ReliabilityRisk resource.",
      "id": "ReliabilityRisk",
      "type": "object"
    },
    "InstancesRemoveResourcePoliciesRequest": {
      "id": "InstancesRemoveResourcePoliciesRequest",
      "properties": {
        "resourcePolicies": {
          "description": "Resource policies to be removed from this instance.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "DiskTypeList": {
      "description": "Contains a list of disk types.",
      "properties": {
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "DiskType"
          },
          "description": "A list of DiskType resources."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "warning": {
          "properties": {
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Always compute#diskTypeList\nfor disk types.",
          "default": "compute#diskTypeList"
        }
      },
      "type": "object",
      "id": "DiskTypeList"
    },
    "NodeTypesScopedList": {
      "id": "NodeTypesScopedList",
      "properties": {
        "warning": {
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            }
          },
          "description": "[Output Only] An informational warning that appears when the node types\nlist is empty.",
          "type": "object"
        },
        "nodeTypes": {
          "items": {
            "$ref": "NodeType"
          },
          "type": "array",
          "description": "[Output Only] A list of node types contained in this scope."
        }
      },
      "type": "object"
    },
    "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": {
      "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings",
      "properties": {
        "drainNatIpPortRanges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "description": "Output only. List of all drain IP:port-range mappings assigned to this interface\nby this rule.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"]."
        },
        "numTotalDrainNatPorts": {
          "readOnly": true,
          "description": "Output only. Total number of drain ports across all NAT IPs allocated to this\ninterface by this rule.\nIt equals the aggregated port number in the field\ndrain_nat_ip_port_ranges.",
          "type": "integer",
          "format": "int32"
        },
        "numTotalNatPorts": {
          "type": "integer",
          "description": "Output only. Total number of ports across all NAT IPs allocated to this interface\nby this rule.\nIt equals the aggregated port number in the field nat_ip_port_ranges.",
          "format": "int32",
          "readOnly": true
        },
        "natIpPortRanges": {
          "description": "Output only. A list of all IP:port-range mappings assigned to this interface by this\nrule.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"].",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "ruleNumber": {
          "description": "Output only. Rule number of the NAT Rule.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        }
      },
      "type": "object",
      "description": "Contains information of NAT Mappings provided by a NAT Rule."
    },
    "DiskResourceStatus": {
      "properties": {
        "asyncSecondaryDisks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "DiskResourceStatusAsyncReplicationStatus"
          },
          "description": "Key: disk, value: AsyncReplicationStatus message"
        },
        "asyncPrimaryDisk": {
          "$ref": "DiskResourceStatusAsyncReplicationStatus"
        }
      },
      "type": "object",
      "id": "DiskResourceStatus"
    },
    "InterconnectMacsecConfigPreSharedKey": {
      "description": "Describes a pre-shared key used to setup MACsec in static connectivity\nassociation key (CAK) mode.",
      "properties": {
        "name": {
          "type": "string",
          "description": "User provided name for this pre-shared key."
        },
        "cak": {
          "description": "An auto-generated Connectivity Association Key (CAK) for this key.",
          "type": "string"
        },
        "startTime": {
          "description": "User provided timestamp on or after which this key is valid.",
          "type": "string"
        },
        "ckn": {
          "description": "An auto-generated Connectivity Association Key Name (CKN) for this key.",
          "type": "string"
        }
      },
      "id": "InterconnectMacsecConfigPreSharedKey",
      "type": "object"
    },
    "RegionInstanceGroupManagersListErrorsResponse": {
      "type": "object",
      "id": "RegionInstanceGroupManagersListErrorsResponse",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "readOnly": true
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "InstanceManagedByIgmError"
          },
          "description": "[Output Only] The list of errors of the managed instance group."
        }
      }
    },
    "FutureReservationCommitmentInfo": {
      "properties": {
        "commitmentPlan": {
          "type": "string",
          "description": "Indicates if a Commitment needs to be created as part of FR delivery. If\nthis field is not present, then no\ncommitment needs to be created.",
          "enum": [
            "INVALID",
            "THIRTY_SIX_MONTH",
            "TWELVE_MONTH"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ]
        },
        "commitmentName": {
          "description": "name of the commitment where capacity is being delivered to.",
          "type": "string"
        },
        "previousCommitmentTerms": {
          "enum": [
            "EXTEND",
            "PREVIOUSCOMMITMENTTERM_UNSPECIFIED"
          ],
          "description": "Only applicable if FR is delivering to the same reservation. If set, all\nparent commitments will be extended to match the end date of the plan for\nthis commitment.",
          "type": "string",
          "enumDescriptions": [
            "All associated parent Committed Used Discount(s) end-date/term will be\nextended to the end-time of this future reservation. Default is to\nextend previous commitment(s) time to the end_time of the reservation.",
            "No changes to associated parents Committed Used Discount(s) terms."
          ]
        }
      },
      "id": "FutureReservationCommitmentInfo",
      "type": "object"
    },
    "BulkInsertOperationStatus": {
      "type": "object",
      "properties": {
        "targetVmCount": {
          "format": "int32",
          "description": "[Output Only] Count of VMs originally planned to be created.",
          "type": "integer"
        },
        "createdVmCount": {
          "type": "integer",
          "format": "int32",
          "description": "[Output Only] Count of VMs successfully created so far."
        },
        "deletedVmCount": {
          "type": "integer",
          "description": "[Output Only] Count of VMs that got deleted during rollback.",
          "format": "int32"
        },
        "status": {
          "enum": [
            "CREATING",
            "DONE",
            "ROLLING_BACK",
            "STATUS_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "Rolling forward - creating VMs.",
            "Done",
            "Rolling back - cleaning up after an error.",
            ""
          ],
          "description": "[Output Only] Creation status of BulkInsert operation - information\nif the flow is rolling forward or rolling back.",
          "type": "string"
        },
        "failedToCreateVmCount": {
          "format": "int32",
          "type": "integer",
          "description": "[Output Only] Count of VMs that started creating but encountered an\nerror."
        }
      },
      "id": "BulkInsertOperationStatus"
    },
    "GlobalFrontendSettings": {
      "properties": {
        "creationTimestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp in RFC3339 text format."
        },
        "bundleType": {
          "enum": [
            "BUNDLE_TYPE_UNSPECIFIED",
            "GLOBAL_FRONT_END",
            "INDIVIDUAL"
          ],
          "enumDescriptions": [
            "Bundling is not active.",
            "Standard Global Frontend bundle.",
            "Ala Carte mode."
          ],
          "description": "Customer-settable bundle type.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. OUTPUT_ONLY fields\n[Output Only] Name of the resource. Must be 1-63 characters long and match\nthe regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "etag": {
          "readOnly": true,
          "description": "Output only. For optimistic locking.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "description": {
          "readOnly": true,
          "description": "Output only. [Output Only] An optional description of this resource.",
          "type": "string"
        }
      },
      "description": "Represents the Global Frontend Bundle settings for a single project.",
      "type": "object",
      "id": "GlobalFrontendSettings"
    },
    "FutureReservationStatusLastKnownGoodState": {
      "properties": {
        "existingMatchingUsageInfo": {
          "description": "Output only. [Output Only] Represents the matching usage for the future\nreservation before an amendment was requested.",
          "$ref": "FutureReservationStatusExistingMatchingUsageInfo",
          "readOnly": true
        },
        "procurementStatus": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The status of the last known good state for the Future\nReservation.",
          "enumDescriptions": [
            "Future reservation is approved by GCP.",
            "Future reservation is cancelled by the customer.",
            "Future reservation is committed by the customer.",
            "Future reservation is rejected by GCP.",
            "Related status for PlanningStatus.Draft. Transitions to\nPENDING_APPROVAL upon user submitting FR.",
            "Future reservation failed. No additional reservations were provided.",
            "Future reservation is partially fulfilled. Additional reservations were\nprovided but did not reach total_count reserved instance slots.",
            "Future reservation is fulfilled completely.",
            "An Amendment to the Future Reservation has been requested. If the\nAmendment is declined, the Future Reservation will be restored to the\nlast known good state.",
            "Future reservation is pending approval by GCP.",
            "",
            "Future reservation is being procured by GCP. Beyond this point, Future\nreservation is locked and no further modifications are allowed.",
            "Future reservation capacity is being provisioned. This state will be\nentered after start_time, while reservations are being created to\nprovide total_count reserved instance slots. This state will not\npersist past start_time + 24h."
          ],
          "enum": [
            "APPROVED",
            "CANCELLED",
            "COMMITTED",
            "DECLINED",
            "DRAFTING",
            "FAILED",
            "FAILED_PARTIALLY_FULFILLED",
            "FULFILLED",
            "PENDING_AMENDMENT_APPROVAL",
            "PENDING_APPROVAL",
            "PROCUREMENT_STATUS_UNSPECIFIED",
            "PROCURING",
            "PROVISIONING"
          ]
        },
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The description of the FutureReservation before an\namendment was requested."
        },
        "futureReservationSpecs": {
          "readOnly": true,
          "$ref": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs"
        },
        "namePrefix": {
          "description": "Output only. [Output Only] The name prefix of the Future Reservation before an\namendment was requested.",
          "type": "string",
          "readOnly": true
        },
        "lockTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The lock time of the FutureReservation before an\namendment was requested."
        }
      },
      "description": "The state that the future reservation will be reverted to should the\namendment be declined.",
      "id": "FutureReservationStatusLastKnownGoodState",
      "type": "object"
    },
    "WeightedBackendService": {
      "id": "WeightedBackendService",
      "description": "In contrast to a single BackendService in \nHttpRouteAction to which all matching traffic is directed to,WeightedBackendService allows traffic to be split across\nmultiple backend services. The volume of traffic for each\nbackend service is proportional to the weight specified\nin each WeightedBackendService",
      "type": "object",
      "properties": {
        "weight": {
          "format": "uint32",
          "type": "integer",
          "description": "Specifies the fraction of traffic sent to a backend service,\ncomputed asweight / (sum of all weightedBackendService weights in routeAction).\n\nThe selection of a backend service is determined only for new traffic.\nOnce a user's request has been directed to a backend service,\nsubsequent requests are sent to the same backend service as\ndetermined by the backend service's session affinity policy.\nDon't configure session affinity if you're using weighted traffic\nsplitting. If you do, the weighted traffic splitting configuration takes\nprecedence.\n\nThe value must be from 0 to 1000."
        },
        "backendService": {
          "description": "The full or partial URL to the default BackendService\nresource. Before\nforwarding the request to backendService, the load balancer\napplies any relevant headerActions specified as part of thisbackendServiceWeight.",
          "type": "string"
        },
        "headerAction": {
          "description": "Specifies changes to request and response headers that need to take\neffect for the selected backendService.\n\nheaderAction specified here take effect beforeheaderAction in the enclosing HttpRouteRule,PathMatcher and UrlMap.\n\nheaderAction is not supported for load balancers that have\ntheir loadBalancingScheme set to EXTERNAL.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true.",
          "$ref": "HttpHeaderAction"
        }
      }
    },
    "InstanceGroupManagersDeleteInstancesRequest": {
      "id": "InstanceGroupManagersDeleteInstancesRequest",
      "properties": {
        "skipInstancesOnValidationError": {
          "description": "Specifies whether the request should proceed despite the inclusion of\ninstances that are not members of the group or that are already in the\nprocess of being deleted or abandoned. If this field is set to `false` and\nsuch an instance is specified in the request, the operation fails. The\noperation always fails if the request contains a malformed instance URL or\na reference to an instance that exists in a zone or region other than the\ngroup's zone or region.",
          "type": "boolean"
        },
        "instances": {
          "description": "The URLs of one or more instances to delete. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].\nQueued instances do not have URL and can be deleted only by name.\nOne cannot specify both URLs and names in a single request.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "BackendServiceTlsSettings": {
      "properties": {
        "identity": {
          "type": "string",
          "description": "Assigns the Managed Identity for the BackendService Workload.\n\n\nUse this property to configure the load balancer back-end to use\ncertificates and roots of trust provisioned by the Managed Workload\nIdentity system. \n\n The `identity` property is the\nfully-specified SPIFFE ID to use in the SVID presented by the Load\nBalancer Workload. \n\n The SPIFFE ID must be a resource starting with the\n`trustDomain` property value, followed by the path to the Managed\nWorkload Identity. \n\n Supported SPIFFE ID format: \n   \n   - //\u003ctrust_domain\u003e/ns/\u003cnamespace\u003e/sa/\u003csubject\u003e\n\n\nThe Trust Domain within the Managed Identity must refer to a valid\nWorkload Identity Pool. The TrustConfig and CertificateIssuanceConfig\nwill be inherited from the Workload Identity Pool. \n\n Restrictions: \n   \n   - If you set the `identity` property, you cannot manually set\n   the following fields: \n       - tlsSettings.sni\n      - tlsSettings.subjectAltNames\n      - tlsSettings.authenticationConfig\n   \n\nWhen defining a `identity` for a RegionBackendServices, the\ncorresponding Workload Identity Pool must have a ca_pool\nconfigured in the same region. \n\n The system will set up a read-onlytlsSettings.authenticationConfig for the Managed Identity."
        },
        "sni": {
          "description": "Server Name Indication - see RFC3546 section 3.1. If set, the load\nbalancer sends this string as the SNI hostname in the TLS connection to\nthe backend, and requires that this string match a Subject Alternative\nName (SAN) in the backend's server certificate. With a Regional Internet\nNEG backend, if the SNI is specified here, the load balancer uses it\nregardless of whether the Regional Internet NEG is specified with FQDN or\nIP address and port. When both sni and subjectAltNames[] are specified,\nthe load balancer matches the backend certificate's SAN only to\nsubjectAltNames[].",
          "type": "string"
        },
        "authenticationConfig": {
          "description": "Reference to the BackendAuthenticationConfig resource from the\nnetworksecurity.googleapis.com namespace. Can be used in authenticating\nTLS connections to the backend, as specified by the authenticationMode\nfield. Can only be specified if authenticationMode is not NONE.",
          "type": "string"
        },
        "subjectAltNames": {
          "items": {
            "$ref": "BackendServiceTlsSettingsSubjectAltName"
          },
          "description": "A list of Subject Alternative Names (SANs) that the Load Balancer\nverifies during a TLS handshake with the backend. When the server\npresents its X.509 certificate to the Load Balancer, the Load Balancer\ninspects the certificate's SAN field, and requires that at least one SAN\nmatch one of the subjectAltNames in the list. This field is limited to 5\nentries. When both sni and subjectAltNames[] are specified, the load\nbalancer matches the backend certificate's SAN only to subjectAltNames[].",
          "type": "array"
        }
      },
      "type": "object",
      "id": "BackendServiceTlsSettings"
    },
    "Host": {
      "properties": {
        "kind": {
          "default": "compute#host",
          "readOnly": true,
          "description": "Output only. The type of resource. Alwayscompute#host for hosts.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The self link of the host."
        },
        "status": {
          "description": "Output only. The status of the host",
          "$ref": "HostStatus",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The unique identifier for this resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "zone": {
          "type": "string",
          "description": "Output only. The zone in which the host resides.",
          "readOnly": true
        },
        "aliasLinks": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. All aliases for this resource.\ne.g.\nprojects/123/zones/us-centra1-a/reservation/r1/reservationBlock/b1/hosts/h1",
          "items": {
            "type": "string"
          }
        },
        "selfLinkWithId": {
          "description": "Output only. The self link with id of the host.",
          "type": "string",
          "readOnly": true
        },
        "creationTimestamp": {
          "description": "Output only. The creation timestamp, formatted asRFC3339 text.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Output only. The name of the host.",
          "type": "string",
          "readOnly": true
        },
        "state": {
          "enum": [
            "ACTIVE",
            "CREATING",
            "DELETING",
            "STATE_UNSPECIFIED",
            "UNAVAILABLE"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "The host has allocated all its resources.",
            "The resources are being allocated for the host.",
            "The host is currently being deleted.",
            "",
            "The host is currently unavailable."
          ],
          "type": "string",
          "description": "Output only. The state of the host."
        },
        "description": {
          "description": "An optional description of this resource.",
          "type": "string"
        }
      },
      "id": "Host",
      "description": "Represents a host resource.",
      "type": "object"
    },
    "InterconnectApplicationAwareInterconnect": {
      "properties": {
        "bandwidthPercentagePolicy": {
          "$ref": "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy"
        },
        "profileDescription": {
          "type": "string",
          "description": "Description for the application awareness profile on this Cloud\nInterconnect."
        },
        "strictPriorityPolicy": {
          "$ref": "InterconnectApplicationAwareInterconnectStrictPriorityPolicy"
        },
        "shapeAveragePercentages": {
          "type": "array",
          "description": "Optional field to specify a list of shape average percentages to be\napplied in conjunction with StrictPriorityPolicy or\nBandwidthPercentagePolicy.",
          "items": {
            "$ref": "InterconnectApplicationAwareInterconnectBandwidthPercentage"
          }
        }
      },
      "description": "Configuration information for application awareness on this Cloud\nInterconnect.",
      "id": "InterconnectApplicationAwareInterconnect",
      "type": "object"
    },
    "GlobalAddressesMoveRequest": {
      "properties": {
        "description": {
          "description": "An optional destination address description if intended to be different\nfrom the source.",
          "type": "string"
        },
        "destinationAddress": {
          "description": "The URL of the destination address to move to. This can be a full or\npartial URL. For example, the following are all valid URLs to a address:\n   \n   - https://www.googleapis.com/compute/v1/projects/project/global/addresses/address \n   - projects/project/global/addresses/address\n\n\nNote that destination project must be different from the source project. So/global/addresses/address is not valid partial url.",
          "type": "string"
        }
      },
      "id": "GlobalAddressesMoveRequest",
      "type": "object"
    },
    "LocationPolicyZoneConfiguration": {
      "type": "object",
      "properties": {
        "zone": {
          "type": "string",
          "description": "The URL of the zone.\nThe zone must exist in the region where the request is called.\nZones must be represented as valid partial URLs,\nsuch as zones/us-central1-a."
        }
      },
      "id": "LocationPolicyZoneConfiguration"
    },
    "VpnTunnelPhase2Algorithms": {
      "properties": {
        "pfs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "integrity": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "encryption": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "VpnTunnelPhase2Algorithms"
    },
    "CustomErrorResponsePolicyCustomErrorResponseRule": {
      "description": "Specifies the mapping between the response code that will be returned along\nwith the custom error content and the response code returned by the backend\nservice.",
      "id": "CustomErrorResponsePolicyCustomErrorResponseRule",
      "properties": {
        "overrideResponseCode": {
          "description": "The HTTP status code returned with the response containing the custom\nerror content. If overrideResponseCode is not supplied, the\nsame response code returned by the original backend bucket or backend\nservice is returned to the client.",
          "format": "int32",
          "type": "integer"
        },
        "path": {
          "description": "The full path to a file within backendBucket . For example:/errors/defaultError.html \n\npath must start\nwith a leading slash. path cannot have trailing slashes.\n\nIf the file is not available in backendBucket  or the\nload balancer cannot reach the BackendBucket, a simpleNot Found Error is returned to the client. \n\nThe value must\nbe from 1 to 1024 characters",
          "type": "string"
        },
        "matchResponseCodes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Valid values include:\n   \n   \n     - A number between 400 and 599: For example\n     401 or 503, in which case the load balancer\n     applies the policy if the error code exactly matches this value.\n     - 5xx: Load Balancer will apply the policy if the\n     backend service responds with any response code in the range of\n     500 to 599. \n   - 4xx: Load\n     Balancer will apply the policy if the backend service responds with any\n     response code in the range of 400 to\n     499.\n\nValues must be unique within matchResponseCodes and across allerrorResponseRules ofCustomErrorResponsePolicy."
        }
      },
      "type": "object"
    },
    "HealthStatusForNetworkEndpoint": {
      "properties": {
        "forwardingRule": {
          "description": "URL of the forwarding rule associated with the health state of the network\nendpoint.",
          "$ref": "ForwardingRuleReference"
        },
        "healthCheck": {
          "$ref": "HealthCheckReference",
          "description": "URL of the health check associated with the health state of the network\nendpoint."
        },
        "healthState": {
          "type": "string",
          "enumDescriptions": [
            "Endpoint is being drained.",
            "Endpoint is healthy.",
            "Endpoint is unhealthy.",
            "Health status of the endpoint is unknown."
          ],
          "enum": [
            "DRAINING",
            "HEALTHY",
            "UNHEALTHY",
            "UNKNOWN"
          ],
          "description": "Health state of the network endpoint determined based on the health checks\nconfigured."
        },
        "ipv6HealthState": {
          "enum": [
            "DRAINING",
            "HEALTHY",
            "UNHEALTHY",
            "UNKNOWN"
          ],
          "description": "Health state of the ipv6 network endpoint determined based on the health\nchecks configured.",
          "enumDescriptions": [
            "Endpoint is being drained.",
            "Endpoint is healthy.",
            "Endpoint is unhealthy.",
            "Health status of the endpoint is unknown."
          ],
          "type": "string"
        },
        "backendService": {
          "description": "URL of the backend service associated with the health state of the network\nendpoint.",
          "$ref": "BackendServiceReference"
        },
        "healthCheckService": {
          "$ref": "HealthCheckServiceReference",
          "description": "URL of the health check service associated with the health state of the\nnetwork endpoint."
        }
      },
      "id": "HealthStatusForNetworkEndpoint",
      "type": "object"
    },
    "InstancesAddResourcePoliciesRequest": {
      "id": "InstancesAddResourcePoliciesRequest",
      "properties": {
        "resourcePolicies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Resource policies to be added to this instance."
        }
      },
      "type": "object"
    },
    "ResourcePolicySnapshotSchedulePolicyRetentionPolicy": {
      "description": "Policy for retention of scheduled snapshots.",
      "properties": {
        "onSourceDiskDelete": {
          "description": "Specifies the behavior to apply to scheduled snapshots when\nthe source disk is deleted.",
          "type": "string",
          "enum": [
            "APPLY_RETENTION_POLICY",
            "KEEP_AUTO_SNAPSHOTS",
            "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ]
        },
        "maxRetentionDays": {
          "description": "Maximum age of the snapshot that is allowed to be kept.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy",
      "type": "object"
    },
    "NetworkEndpointGroupsListNetworkEndpoints": {
      "type": "object",
      "properties": {
        "warning": {
          "properties": {
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              }
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] The resource type, which is alwayscompute#networkEndpointGroupsListNetworkEndpoints for the list\nof network endpoints in the specified network endpoint group.",
          "readOnly": true,
          "default": "compute#networkEndpointGroupsListNetworkEndpoints"
        },
        "items": {
          "description": "A list of NetworkEndpointWithHealthStatus resources.",
          "items": {
            "$ref": "NetworkEndpointWithHealthStatus"
          },
          "type": "array"
        }
      },
      "id": "NetworkEndpointGroupsListNetworkEndpoints"
    },
    "RolloutPlanWave": {
      "id": "RolloutPlanWave",
      "description": "A single wave in a rollout plan.",
      "type": "object",
      "properties": {
        "orchestrationOptions": {
          "description": "Optional. The orchestration options for this wave.",
          "$ref": "RolloutPlanWaveOrchestrationOptions"
        },
        "selectors": {
          "description": "Required. The selectors for this wave. There is a logical AND between each selector\ndefined in a wave, so a resource must satisfy the criteria of *all* the\nspecified selectors to be in scope for the wave.",
          "type": "array",
          "items": {
            "$ref": "RolloutPlanWaveSelector"
          }
        },
        "validation": {
          "$ref": "RolloutPlanWaveValidation",
          "description": "Required. The validation to be performed at the end of this wave."
        },
        "displayName": {
          "description": "Optional. The display name of this wave of the rollout plan.",
          "type": "string"
        },
        "number": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The wave number."
        }
      }
    },
    "InterconnectGroupsOperationalStatusInterconnectStatus": {
      "type": "object",
      "id": "InterconnectGroupsOperationalStatusInterconnectStatus",
      "properties": {
        "adminEnabled": {
          "description": "Output only. Whether the Interconnect is enabled.",
          "readOnly": true,
          "type": "boolean"
        },
        "interconnect": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The URL of the Interconnect being described."
        },
        "diagnostics": {
          "$ref": "InterconnectDiagnostics",
          "readOnly": true,
          "description": "Output only. The diagnostics of the Interconnect, as returned by the existing\nget-diagnostics method."
        },
        "isActive": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "readOnly": true,
          "enum": [
            "ACTIVE",
            "INACTIVE",
            "IS_ACTIVE_UNSPECIFIED"
          ],
          "description": "Output only. Whether this interconnect is participating in the redundant\nconfiguration."
        }
      },
      "description": "The status of one Interconnect in the group. The order is arbitrary."
    },
    "InterconnectLocationRegionInfo": {
      "properties": {
        "expectedRttMs": {
          "description": "Output only. Expected round-trip time in milliseconds, from this InterconnectLocation\nto a VM in this region.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "l2ForwardingEnabled": {
          "readOnly": true,
          "description": "Output only. Identifies whether L2 Interconnect Attachments can be created in this\nregion for interconnects that are in this location.",
          "type": "boolean"
        },
        "region": {
          "type": "string",
          "description": "Output only. URL for the region of this location.",
          "readOnly": true
        },
        "locationPresence": {
          "type": "string",
          "enumDescriptions": [
            "This region is not in any common network presence with this\nInterconnectLocation.",
            "This region shares the same regional network presence as this\nInterconnectLocation.",
            "[Deprecated] This region is not in any common network presence with\nthis InterconnectLocation.",
            "[Deprecated] This region shares the same regional network presence as\nthis InterconnectLocation."
          ],
          "enum": [
            "GLOBAL",
            "LOCAL_REGION",
            "LP_GLOBAL",
            "LP_LOCAL_REGION"
          ],
          "description": "Output only. Identifies the network presence of this location.",
          "readOnly": true
        }
      },
      "description": "Information about any potential InterconnectAttachments between an\nInterconnect at a specific InterconnectLocation, and a specific Cloud\nRegion.",
      "type": "object",
      "id": "InterconnectLocationRegionInfo"
    },
    "InstanceGroupManagerStandbyPolicy": {
      "type": "object",
      "properties": {
        "initialDelaySec": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies the number of seconds that the MIG should wait to suspend or\nstop a VM after that VM was created. The initial delay gives the\ninitialization script the time to prepare your VM for a quick scale out.\nThe value of initial delay must be between 0 and 3600 seconds. The\ndefault value is 0."
        },
        "mode": {
          "enumDescriptions": [
            "MIG does not automatically resume or start VMs in the standby pool when\nthe group scales out.",
            "MIG automatically resumes or starts VMs in the standby pool when the\ngroup scales out, and replenishes the standby pool afterwards."
          ],
          "enum": [
            "MANUAL",
            "SCALE_OUT_POOL"
          ],
          "description": "Defines how a MIG resumes or starts VMs from a standby pool when the\ngroup scales out. The default mode is `MANUAL`.",
          "type": "string"
        }
      },
      "id": "InstanceGroupManagerStandbyPolicy"
    },
    "InstanceGroupManagerStatusVersionTarget": {
      "id": "InstanceGroupManagerStatusVersionTarget",
      "type": "object",
      "properties": {
        "isReached": {
          "type": "boolean",
          "description": "Output only. A bit indicating whether version target has been reached\nin this managed instance group, i.e. all instances are in their target\nversion. Instances' target version are specified byversion field on Instance Group Manager.",
          "readOnly": true
        }
      }
    },
    "TargetSslProxiesSetSslCertificatesRequest": {
      "id": "TargetSslProxiesSetSslCertificatesRequest",
      "type": "object",
      "properties": {
        "sslCertificates": {
          "description": "New set of URLs to SslCertificate resources to associate with this\nTargetSslProxy. At least one SSL certificate must be specified.\nCurrently, you may specify up to 15 SSL certificates.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "FutureReservation": {
      "properties": {
        "selfLinkWithId": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.",
          "type": "string"
        },
        "confidentialComputeType": {
          "type": "string",
          "enumDescriptions": [
            "Bare Metal Secure AI.",
            "Intel Trust Domain Extensions.",
            ""
          ],
          "enum": [
            "CONFIDENTIAL_COMPUTE_TYPE_BMSAI",
            "CONFIDENTIAL_COMPUTE_TYPE_TDX",
            "CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED"
          ]
        },
        "status": {
          "readOnly": true,
          "description": "Output only. [Output only] Status of the Future Reservation",
          "$ref": "FutureReservationStatus"
        },
        "autoDeleteAutoCreatedReservations": {
          "description": "Setting for enabling or disabling automatic deletion for auto-created\nreservation. If set to true, auto-created reservations will be\ndeleted at Future Reservation's end time (default) or at user's defined\ntimestamp if any of the\n[auto_created_reservations_delete_time, auto_created_reservations_duration]\nvalues is specified.\nFor keeping auto-created reservation indefinitely, this value should be set\nto false.",
          "type": "boolean"
        },
        "planningStatus": {
          "enum": [
            "DRAFT",
            "PLANNING_STATUS_UNSPECIFIED",
            "SUBMITTED"
          ],
          "enumDescriptions": [
            "Future Reservation is being drafted.",
            "",
            "Future Reservation has been submitted for evaluation by GCP."
          ],
          "description": "Planning state before being submitted for evaluation",
          "type": "string"
        },
        "timeWindow": {
          "description": "Time window for this Future Reservation.",
          "$ref": "FutureReservationTimeWindow"
        },
        "colocationResource": {
          "type": "string",
          "description": "Full or partial URL of an existing future reservation to indicate\nintent for reserving capacity in the same cluster as the colocation\nresource."
        },
        "id": {
          "readOnly": true,
          "format": "uint64",
          "description": "Output only. [Output Only] A unique identifier for this future reservation. The server\ndefines this identifier.",
          "type": "string"
        },
        "zone": {
          "description": "Output only. [Output Only] URL of the Zone where this future reservation resides.",
          "readOnly": true,
          "type": "string"
        },
        "reservationName": {
          "type": "string",
          "description": "Name of reservations where the capacity is provisioned at the time of\ndelivery of  future reservations. If the reservation with the given name\ndoes not exist already, it is created automatically at the time of Approval\nwith INACTIVE state till specified start-time. Either provide the\nreservation_name or a name_prefix."
        },
        "autoCreatedReservationsDuration": {
          "description": "Specifies the duration of auto-created reservations.\nIt represents relative time to future reservation start_time when\nauto-created reservations will be automatically deleted by Compute\nEngine. Duration time unit is represented as a count of seconds\nand fractions of seconds at nanosecond resolution.",
          "$ref": "Duration"
        },
        "storagePoolProperties": {
          "description": "Storage pool details for the future reservation.",
          "$ref": "FutureReservationStoragePoolProperties"
        },
        "namePrefix": {
          "type": "string",
          "description": "Name prefix for the reservations to be created at the time of\ndelivery. The name prefix must comply with RFC1035.\nMaximum allowed length for name prefix is 20. Automatically created\nreservations name format will be -date-####."
        },
        "enableEmergentMaintenance": {
          "type": "boolean",
          "description": "Indicates if this group of VMs have emergent maintenance enabled."
        },
        "autoCreatedReservationsDeleteTime": {
          "type": "string",
          "description": "Future timestamp when the FR auto-created reservations will be deleted by\nCompute Engine. Format of this field must be a valid\nhref=\"https://www.ietf.org/rfc/rfc3339.txt\"\u003eRFC3339 value."
        },
        "specificReservationRequired": {
          "description": "Indicates whether the auto-created reservation can be consumed by VMs with\naffinity for \"any\" reservation. If the field is set, then only VMs that\ntarget the reservation by name can consume from the delivered reservation.",
          "type": "boolean"
        },
        "shareSettings": {
          "$ref": "ShareSettings",
          "description": "List of Projects/Folders to share with."
        },
        "params": {
          "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "FutureReservationParams"
        },
        "deploymentType": {
          "description": "Type of the deployment requested as part of future reservation.",
          "type": "string",
          "enumDescriptions": [
            "The reserved capacity is made up of densely deployed reservation blocks.",
            ""
          ],
          "enum": [
            "DENSE",
            "DEPLOYMENT_TYPE_UNSPECIFIED"
          ]
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#futureReservation for future reservations.",
          "default": "compute#futureReservation"
        },
        "aggregateReservation": {
          "$ref": "AllocationAggregateReservation",
          "description": "Aggregate reservation details for the future reservation."
        },
        "commitmentInfo": {
          "description": "If not present, then FR will not deliver a new commitment or update an\nexisting commitment.",
          "$ref": "FutureReservationCommitmentInfo"
        },
        "reservationMode": {
          "enumDescriptions": [
            "The delivered reservations will delivered at specified start time and\nterminated at specified end time along with terminating the VMs running\non it.",
            "The delivered reservations do not terminate VMs at the end of\nreservations. This is default mode.",
            ""
          ],
          "type": "string",
          "description": "The reservation mode which determines reservation-termination behavior and\nexpected pricing.",
          "enum": [
            "CALENDAR",
            "DEFAULT",
            "RESERVATION_MODE_UNSPECIFIED"
          ]
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] The creation timestamp for this future reservation inRFC3339\ntext format.",
          "type": "string"
        },
        "specificSkuProperties": {
          "description": "Future Reservation configuration to indicate instance properties and\ntotal count.",
          "$ref": "FutureReservationSpecificSKUProperties"
        },
        "schedulingType": {
          "type": "string",
          "enum": [
            "GROUPED",
            "GROUP_MAINTENANCE_TYPE_UNSPECIFIED",
            "INDEPENDENT"
          ],
          "description": "Maintenance information for this reservation",
          "enumDescriptions": [
            "Maintenance on all reserved instances in the reservation is synchronized.",
            "Unknown maintenance type.",
            "Maintenance is not synchronized for this reservation. Instead, each\ninstance has its own maintenance window."
          ]
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the future reservation.",
          "type": "string"
        },
        "resourceMetadata": {
          "description": "Output only. Contains standard resource metadata for an FutureReservation\nresource. It is populated for each instance of the FutureReservation\nresource, and includes the api_version the\ninstance was retrieved through, and its canonical\nresource_type name.",
          "readOnly": true,
          "$ref": "ResourceMetadata"
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.",
          "annotations": {
            "required": [
              "compute.instances.insert"
            ]
          }
        },
        "resourceName": {
          "description": "Name of the resource intended to be delivered. Name should conform to\nRFC1035. This will be the name of storage pool or Exapool for persistent\ndisk FRs.",
          "type": "string"
        }
      },
      "id": "FutureReservation",
      "type": "object"
    },
    "TargetPoolsRemoveHealthCheckRequest": {
      "id": "TargetPoolsRemoveHealthCheckRequest",
      "type": "object",
      "properties": {
        "healthChecks": {
          "description": "Health check URL to be removed. This can be a full or valid partial URL.\nFor example, the following are valid URLs:\n   \n   - https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check \n   - projects/project/global/httpHealthChecks/health-check\n   - global/httpHealthChecks/health-check",
          "type": "array",
          "items": {
            "$ref": "HealthCheckReference"
          }
        }
      }
    },
    "OrganizationSecurityPoliciesListAssociationsResponse": {
      "properties": {
        "kind": {
          "default": "compute#organizationSecurityPoliciesListAssociationsResponse",
          "description": "Output only. [Output Only] Type of securityPolicy associations. Alwayscompute#organizationSecurityPoliciesListAssociations for lists\nof securityPolicy associations.",
          "readOnly": true,
          "type": "string"
        },
        "associations": {
          "items": {
            "$ref": "SecurityPolicyAssociation"
          },
          "description": "A list of associations.",
          "type": "array"
        }
      },
      "id": "OrganizationSecurityPoliciesListAssociationsResponse",
      "type": "object"
    },
    "PreviewFeature": {
      "properties": {
        "description": {
          "readOnly": true,
          "description": "Output only. [Output Only] Description of the feature.",
          "type": "string"
        },
        "name": {
          "description": "Name of the feature.",
          "type": "string"
        },
        "creationTimestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "activationStatus": {
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "ACTIVATION_STATE_UNSPECIFIED",
            "DISABLED",
            "ENABLED"
          ],
          "type": "string",
          "description": "Specifies whether the feature is enabled or disabled."
        },
        "rolloutOperation": {
          "description": "Rollout operation of the feature.",
          "$ref": "PreviewFeatureRolloutOperation"
        },
        "status": {
          "$ref": "PreviewFeatureStatus",
          "readOnly": true,
          "description": "Output only. [Output only] Status of the feature."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#previewFeature",
          "description": "Output only. [Output only] The type of the feature. Always \"compute#previewFeature\" for\npreview features.",
          "type": "string"
        },
        "id": {
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "readOnly": true,
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "Represents a single Google Compute Engine preview feature.",
      "id": "PreviewFeature",
      "type": "object"
    },
    "CommitmentAggregatedList": {
      "id": "CommitmentAggregatedList",
      "type": "object",
      "properties": {
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "items": {
          "additionalProperties": {
            "description": "[Output Only] Name of the scope containing this set of commitments.",
            "$ref": "CommitmentsScopedList"
          },
          "type": "object",
          "description": "A list of CommitmentsScopedList resources."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "default": "compute#commitmentAggregatedList",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#commitmentAggregatedList for aggregated lists of\ncommitments.",
          "type": "string"
        }
      }
    },
    "ReservationBlocksGetResponse": {
      "properties": {
        "resource": {
          "$ref": "ReservationBlock"
        }
      },
      "type": "object",
      "id": "ReservationBlocksGetResponse"
    },
    "InstancesSetMachineResourcesRequest": {
      "type": "object",
      "properties": {
        "guestAccelerators": {
          "description": "A list of the type and count of accelerator cards attached to the instance.",
          "items": {
            "$ref": "AcceleratorConfig"
          },
          "type": "array"
        }
      },
      "id": "InstancesSetMachineResourcesRequest"
    },
    "PacketMirroring": {
      "id": "PacketMirroring",
      "description": "Represents a Packet Mirroring resource.\n\nPacket Mirroring clones the traffic of specified instances in your Virtual\nPrivate Cloud (VPC) network and forwards it to a collector destination,\nsuch as an instance group of an internal TCP/UDP load balancer, for analysis\nor examination.\nFor more information about setting up Packet Mirroring, seeUsing Packet Mirroring.",
      "type": "object",
      "properties": {
        "region": {
          "description": "[Output Only] URI of the region where the packetMirroring resides.",
          "type": "string"
        },
        "name": {
          "annotations": {
            "required": [
              "compute.packetMirrorings.insert"
            ]
          },
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.",
          "type": "string"
        },
        "collectorIlb": {
          "$ref": "PacketMirroringForwardingRuleInfo",
          "description": "The Forwarding Rule resource of typeloadBalancingScheme=INTERNAL that will be used as collector\nfor mirrored traffic.\nThe specified forwarding rule must have isMirroringCollector\nset to true."
        },
        "mirroredResources": {
          "description": "PacketMirroring mirroredResourceInfos.\nMirroredResourceInfo specifies a set of mirrored VM instances, subnetworks\nand/or tags for which traffic from/to all VM instances will be mirrored.",
          "$ref": "PacketMirroringMirroredResourceInfo"
        },
        "priority": {
          "description": "The priority of applying this configuration. Priority is used to break ties\nin cases where there is more than one matching rule. In the case of two\nrules that apply for a given Instance, the one with the lowest-numbered\npriority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.",
          "type": "integer",
          "format": "uint32"
        },
        "id": {
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "readOnly": true,
          "format": "uint64"
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true
        },
        "filter": {
          "$ref": "PacketMirroringFilter",
          "description": "Filter for mirrored traffic. If unspecified, all IPv4 traffic is mirrored."
        },
        "enable": {
          "enum": [
            "FALSE",
            "TRUE"
          ],
          "description": "Indicates whether or not this packet mirroring takes effect.\nIf set to FALSE, this packet mirroring policy will not be enforced on the\nnetwork.\n\nThe default is TRUE.",
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        },
        "network": {
          "description": "Specifies the mirrored VPC network. Only packets in this network will be\nmirrored. All mirrored VMs should have a NIC in the given network.\nAll mirrored subnetworks should belong to the given network.",
          "annotations": {
            "required": [
              "compute.packetMirrorings.insert"
            ]
          },
          "$ref": "PacketMirroringNetworkInfo"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#packetMirroring for packet mirrorings.",
          "type": "string",
          "default": "compute#packetMirroring"
        }
      }
    },
    "InstanceGroupManagerInstanceLifecyclePolicy": {
      "properties": {
        "onFailedHealthCheck": {
          "enum": [
            "DEFAULT_ACTION",
            "DO_NOTHING",
            "REPAIR"
          ],
          "description": "The action that a MIG performs on an unhealthy VM. A VM is marked as\nunhealthy when the application running on that VM fails a health check.\nValid values are:\n   \n   - DEFAULT_ACTION (default): MIG uses the same action\n   configured for instanceLifecyclePolicy.defaultActionOnFailure field.\n   - REPAIR: MIG automatically repairs an unhealthy VM by\n   recreating it.\n   - DO_NOTHING: MIG doesn't repair an unhealthy VM.\n   For more information, see \n   About repairing VMs in a MIG.",
          "enumDescriptions": [
            "(Default) MIG uses the same action configured for\ninstanceLifecyclePolicy.defaultActionOnFailure field.",
            "MIG doesn't repair an unhealthy VM.",
            "MIG automatically repairs an unhealthy VM by recreating it."
          ],
          "type": "string"
        },
        "defaultActionOnFailure": {
          "description": "The action that a MIG performs on a failed VM. If the value of the\nonFailedHealthCheck field is `DEFAULT_ACTION`, then the same action also\napplies to the VMs on which your application fails a health check.\nValid values are \n   \n   - REPAIR (default): MIG automatically repairs a failed VM\n   by recreating it. For more information, see About\n   repairing VMs in a MIG.\n   - DO_NOTHING: MIG does not repair a failed VM.",
          "type": "string",
          "enumDescriptions": [
            "MIG does not repair a failed VM.",
            "(default): MIG automatically repairs a failed VM by recreating it.\nFor more information, see About\nrepairing VMs in a MIG."
          ],
          "enum": [
            "DO_NOTHING",
            "REPAIR"
          ]
        },
        "onRepair": {
          "description": "Configuration for VM repairs in the MIG.",
          "$ref": "InstanceGroupManagerInstanceLifecyclePolicyOnRepair"
        },
        "forceUpdateOnRepair": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "A bit indicating whether to forcefully apply the group's latest\nconfiguration when repairing a VM. Valid options are:\n\n   \n   \n     -  NO (default): If configuration updates are available, they are not\n     forcefully applied during repair. Instead, configuration updates are\n     applied according to the group's update policy.\n   \n     -  YES: If configuration updates are available, they are applied\n     during repair.",
          "enum": [
            "NO",
            "YES"
          ]
        }
      },
      "type": "object",
      "id": "InstanceGroupManagerInstanceLifecyclePolicy"
    },
    "InstanceConsumptionInfo": {
      "id": "InstanceConsumptionInfo",
      "properties": {
        "localSsdGb": {
          "readOnly": true,
          "description": "Output only. The amount of local SSD storage available to the instance,\ndefined in GiB.",
          "format": "int32",
          "type": "integer"
        },
        "guestCpus": {
          "description": "Output only. The number of virtual CPUs that are available to the instance.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "memoryMb": {
          "format": "int32",
          "description": "Output only. The amount of physical memory available to the instance,\ndefined in MiB.",
          "readOnly": true,
          "type": "integer"
        },
        "minNodeCpus": {
          "description": "Output only. The minimal guaranteed number of virtual CPUs that are reserved.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "NetworkEndpointGroupAppEngine": {
      "type": "object",
      "id": "NetworkEndpointGroupAppEngine",
      "properties": {
        "version": {
          "type": "string",
          "description": "Optional serving version.\n\nThe version name is case-sensitive and must be 1-100\ncharacters long.\n\nExample value: v1, v2."
        },
        "urlMask": {
          "description": "An URL\nmask is one of the main components of the Cloud Function.\n\nA template to parse service and version fields\nfrom a request URL. URL mask allows for routing to multiple App Engine\nservices without having to create multiple Network Endpoint Groups and\nbackend services.\n\nFor example, the request URLsfoo1-dot-appname.appspot.com/v1 andfoo1-dot-appname.appspot.com/v2 can be backed by the same\nServerless NEG with URL mask\u003cservice\u003e-dot-appname.appspot.com/\u003cversion\u003e.\nThe URL mask will parse them to { service = \"foo1\", version = \"v1\"\n} and { service = \"foo1\", version = \"v2\" }\nrespectively.",
          "type": "string"
        },
        "service": {
          "type": "string",
          "description": "Optional serving service.\n\nThe service name is case-sensitive and must be 1-63\ncharacters long.\n\nExample value: default, my-service."
        }
      },
      "description": "Configuration for an App Engine network endpoint group (NEG).\nThe service is optional, may be provided explicitly or in the\nURL mask. The version is optional and can only be provided\nexplicitly or in the URL mask when service is present.\n\nNote: App Engine service must be in the same project and located in the\nsame region as the Serverless NEG."
    },
    "RouterNatRule": {
      "id": "RouterNatRule",
      "properties": {
        "description": {
          "type": "string",
          "description": "An optional description of this rule."
        },
        "match": {
          "type": "string",
          "description": "CEL expression that specifies the match condition that egress traffic\nfrom a VM is evaluated against. If it evaluates to true, the\ncorresponding `action` is enforced.\n\nThe following examples are valid match expressions for public NAT:\n\n`inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip,\n     '2.2.0.0/16')`\n\n`destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'`\n\nThe following examples are valid match expressions for private NAT:\n\n(NAT 44)\n`nexthop.hub ==\n'//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'`\n\n`nexthop.is_hybrid`\n\n(NAT 64)\n`isIPv6(source.ip)`"
        },
        "ruleNumber": {
          "format": "uint32",
          "description": "An integer uniquely identifying a rule in the list. The rule number\nmust be a positive value between 0 and 65000, and\nmust be unique among rules within a NAT.",
          "type": "integer"
        },
        "action": {
          "description": "The action to be enforced for traffic that matches this rule.",
          "$ref": "RouterNatRuleAction"
        }
      },
      "type": "object"
    },
    "ScalingScheduleStatus": {
      "id": "ScalingScheduleStatus",
      "properties": {
        "state": {
          "type": "string",
          "description": "[Output Only] The current state of a scaling schedule.",
          "enum": [
            "ACTIVE",
            "DISABLED",
            "OBSOLETE",
            "READY"
          ],
          "enumDescriptions": [
            "The current autoscaling recommendation is influenced by this scaling\nschedule.",
            "This scaling schedule has been disabled by the user.",
            "This scaling schedule will never become active again.",
            "The current autoscaling recommendation is not influenced by this scaling\nschedule."
          ]
        },
        "lastStartTime": {
          "description": "[Output Only] The last time the scaling schedule became active.\nNote: this is a timestamp when a schedule actually became active, not when\nit was planned to do so.\nThe timestamp is in RFC3339\ntext format.",
          "type": "string"
        },
        "nextStartTime": {
          "description": "[Output Only] The next time the scaling schedule is to become active.\nNote: this is a timestamp when a schedule is planned to run, but the actual\ntime might be slightly different.\nThe timestamp is in RFC3339\ntext format.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RolloutsListResponse": {
      "id": "RolloutsListResponse",
      "type": "object",
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "type": "array",
          "description": "A list of Rollout resources.",
          "items": {
            "$ref": "Rollout"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "unreachables": {
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "etag": {
          "type": "string"
        }
      }
    },
    "SnapshotList": {
      "description": "Contains a list of Snapshot resources.",
      "id": "SnapshotList",
      "type": "object",
      "properties": {
        "items": {
          "items": {
            "$ref": "Snapshot"
          },
          "description": "A list of Snapshot resources.",
          "type": "array"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "kind": {
          "description": "Output only. Type of resource.",
          "type": "string",
          "readOnly": true,
          "default": "compute#snapshotList"
        }
      }
    },
    "DisksResizeRequest": {
      "properties": {
        "sizeGb": {
          "format": "int64",
          "type": "string",
          "description": "The new size of the persistent disk, which is specified in GB."
        }
      },
      "id": "DisksResizeRequest",
      "type": "object"
    },
    "ManagedInstancePropertiesFromFlexibilityPolicy": {
      "id": "ManagedInstancePropertiesFromFlexibilityPolicy",
      "properties": {
        "machineType": {
          "description": "Output only. The machine type to be used for this instance.",
          "type": "string",
          "readOnly": true
        },
        "minCpuPlatform": {
          "description": "Name of the minimum CPU platform to be used by this instance.\ne.g. 'Intel Ice Lake'.",
          "type": "string"
        },
        "disks": {
          "description": "List of disks to be attached to the instance.",
          "items": {
            "$ref": "AttachedDisk"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "HealthCheckServiceReference": {
      "type": "object",
      "id": "HealthCheckServiceReference",
      "description": "A full or valid partial URL to a health check service. For example, the\nfollowing are valid URLs:\n   \n   - https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service\n   - projects/project-id/regions/us-west1/healthCheckServices/health-check-service\n   - regions/us-west1/healthCheckServices/health-check-service",
      "properties": {
        "healthCheckService": {
          "type": "string"
        }
      }
    },
    "UsableSubnetworksAggregatedList": {
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "items": {
          "type": "array",
          "description": "[Output] A list of usable subnetwork URLs.",
          "items": {
            "$ref": "UsableSubnetwork"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.\nIn special cases listUsable may return 0 subnetworks andnextPageToken which still should be used to get the\nnext page of results."
        },
        "scopedWarnings": {
          "description": "Output only. [Output Only] Informational warning messages for failures encountered from\nscopes.",
          "type": "array",
          "items": {
            "$ref": "SubnetworksScopedWarning"
          },
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "kind": {
          "default": "compute#usableSubnetworksAggregatedList",
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#usableSubnetworksAggregatedList for aggregated lists\nof usable subnetworks.",
          "readOnly": true
        },
        "unreachables": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources.",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "UsableSubnetworksAggregatedList"
    },
    "SecurityPolicyRulePreconfiguredWafConfig": {
      "id": "SecurityPolicyRulePreconfiguredWafConfig",
      "properties": {
        "exclusions": {
          "items": {
            "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusion"
          },
          "type": "array",
          "description": "A list of exclusions to apply during preconfigured WAF evaluation."
        }
      },
      "type": "object"
    },
    "WireProperties": {
      "id": "WireProperties",
      "properties": {
        "bandwidthUnmetered": {
          "format": "int64",
          "description": "The unmetered bandwidth in Gigabits per second, using decimal units. `10`\nis 10 Gbps, `100` is 100 Gbps. The bandwidth must be greater than 0.",
          "type": "string"
        },
        "faultResponse": {
          "enum": [
            "DISABLE_PORT",
            "NONE"
          ],
          "enumDescriptions": [
            "Set the port line protocol down when inline probes detect a fault. This\nsetting is only permitted on port mode pseudowires.",
            "Default."
          ],
          "type": "string",
          "description": "Response when a fault is detected in a pseudowire:\n   \n   - NONE: default.\n   - DISABLE_PORT: set the port line protocol down when inline probes\n   detect a fault. This setting is only permitted on port mode\n   pseudowires."
        },
        "bandwidthAllocation": {
          "description": "The configuration of the bandwidth allocation, one of the following:\n   \n   - ALLOCATE_PER_WIRE: configures a separate unmetered bandwidth allocation\n   (and associated charges) for each wire in the group.\n   - SHARED_WITH_WIRE_GROUP: this is the default behavior, which configures\n   one unmetered bandwidth allocation for the wire group. The unmetered\n   bandwidth is divided equally across each wire in the group, but dynamic\n   throttling reallocates unused unmetered bandwidth from unused or underused\n   wires to other wires in the group.",
          "type": "string",
          "enum": [
            "ALLOCATE_PER_WIRE",
            "SHARED_WITH_WIRE_GROUP"
          ],
          "enumDescriptions": [
            "Configures a separate unmetered bandwidth allocation (and associated\ncharges) for each wire in the group.",
            "This is the default behavior. Configures one unmetered bandwidth\nallocation for the wire group. The unmetered bandwidth is divided equally\nacross each wire in the group, but dynamic throttling reallocates unused\nunmetered bandwidth from unused or underused wires to other wires in the\ngroup."
          ]
        }
      },
      "description": "The properties of a wire.",
      "type": "object"
    },
    "InstanceGroupsRemoveInstancesRequest": {
      "id": "InstanceGroupsRemoveInstancesRequest",
      "type": "object",
      "properties": {
        "instances": {
          "description": "The list of instances to remove from the instance group.",
          "type": "array",
          "items": {
            "$ref": "InstanceReference"
          }
        }
      }
    },
    "CompositeHealthCheckHealth": {
      "id": "CompositeHealthCheckHealth",
      "description": "Response message for RegionCompositeHealthChecks.GetHealth",
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#compositeHealthCheckHealth for the health of\ncomposite health checks.",
          "default": "compute#compositeHealthCheckHealth"
        },
        "healthState": {
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "description": "Health state of the CompositeHealthCheck.",
          "type": "string",
          "enum": [
            "HEALTHY",
            "UNHEALTHY",
            "UNKNOWN"
          ]
        },
        "healthSources": {
          "type": "array",
          "items": {
            "$ref": "CompositeHealthChecksGetHealthResponseHealthSourceHealth"
          },
          "description": "Health sources and their corresponding health states."
        }
      }
    },
    "InstanceList": {
      "id": "InstanceList",
      "properties": {
        "items": {
          "items": {
            "$ref": "Instance"
          },
          "type": "array",
          "description": "A list of Instance resources."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "default": "compute#instanceList",
          "description": "Output only. [Output Only] Type of resource. Always compute#instanceList\nfor lists of Instance resources.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "description": "Contains a list of instances."
    },
    "RouterParams": {
      "description": "Additional router parameters.",
      "id": "RouterParams",
      "type": "object",
      "properties": {
        "resourceManagerTags": {
          "description": "Tag keys/values directly bound to this resource.\nThe field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n  {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      }
    },
    "HealthAggregationPolicyList": {
      "type": "object",
      "id": "HealthAggregationPolicyList",
      "properties": {
        "items": {
          "description": "A list of HealthAggregationPolicy resources.",
          "type": "array",
          "items": {
            "$ref": "HealthAggregationPolicy"
          }
        },
        "kind": {
          "default": "compute#healthAggregationPolicyList",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#healthAggregationPolicy for health aggregation\npolicies."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "type": "array"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for this resource."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        }
      }
    },
    "InitialStateConfig": {
      "type": "object",
      "properties": {
        "keks": {
          "type": "array",
          "items": {
            "$ref": "FileContentBuffer"
          },
          "description": "The Key Exchange Key (KEK)."
        },
        "pk": {
          "$ref": "FileContentBuffer",
          "description": "The Platform Key (PK)."
        },
        "dbxs": {
          "description": "The forbidden key database (dbx).",
          "items": {
            "$ref": "FileContentBuffer"
          },
          "type": "array"
        },
        "dbs": {
          "description": "The Key Database (db).",
          "type": "array",
          "items": {
            "$ref": "FileContentBuffer"
          }
        }
      },
      "id": "InitialStateConfig",
      "description": "Initial State for shielded instance,\nthese are public keys which are safe to store in public"
    },
    "CapacityHistoryRequestInstancePropertiesScheduling": {
      "description": "Scheduling options.",
      "properties": {
        "provisioningModel": {
          "enum": [
            "FLEX_START",
            "RESERVATION_BOUND",
            "SPOT",
            "STANDARD"
          ],
          "description": "The provisioning model to get capacity history for.\nThis field must be set to SPOT.\n\nFor more information, see\nCompute Engine instances provisioning models.",
          "enumDescriptions": [
            "Instance is provisioned using the Flex Start provisioning model and\nhas a limited runtime.",
            "Bound to the lifecycle of the reservation in which it is provisioned.",
            "Heavily discounted, no guaranteed runtime.",
            "Standard provisioning with user controlled runtime, no discounts."
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "CapacityHistoryRequestInstancePropertiesScheduling"
    },
    "ManagedInstanceVersion": {
      "properties": {
        "instanceTemplate": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The intended template of the instance. This field is empty\nwhen current_action is one of { DELETING, ABANDONING }."
        },
        "name": {
          "type": "string",
          "description": "Output only. [Output Only] Name of the version.",
          "readOnly": true
        }
      },
      "id": "ManagedInstanceVersion",
      "type": "object"
    },
    "ForwardingRuleList": {
      "type": "object",
      "properties": {
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "kind": {
          "default": "compute#forwardingRuleList",
          "type": "string",
          "description": "Output only. Type of resource.",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "ForwardingRule"
          },
          "type": "array",
          "description": "A list of ForwardingRule resources."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        }
      },
      "description": "Contains a list of ForwardingRule resources.",
      "id": "ForwardingRuleList"
    },
    "TargetSslProxiesSetCertificateMapRequest": {
      "id": "TargetSslProxiesSetCertificateMapRequest",
      "properties": {
        "certificateMap": {
          "description": "URL of the Certificate Map to associate with this TargetSslProxy.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig": {
      "properties": {
        "enforceOnKeyType": {
          "description": "Determines the key to enforce the rate_limit_threshold on. Possible\nvalues are:\n   \n   - ALL: A single rate limit threshold is applied to all\n   the requests matching this rule. This is the default value if\n   \"enforceOnKeyConfigs\" is not configured.\n   - IP: The source IP address of\n   the request is the key. Each IP has this limit enforced\n   separately.\n   - HTTP_HEADER: The value of the HTTP\n   header whose name is configured under \"enforceOnKeyName\". The key\n   value is truncated to the first 128 bytes of the header value. If no\n   such header is present in the request, the key type defaults toALL.\n   - XFF_IP: The first IP address (i.e. the\n   originating client IP address) specified in the list of IPs under\n   X-Forwarded-For HTTP header. If no such header is present or the\n   value is not a valid IP, the key defaults to the source IP address of\n   the request i.e. key type IP.\n   - HTTP_COOKIE: The value of the HTTP\n   cookie whose name is configured under \"enforceOnKeyName\". The key\n   value is truncated to the first 128 bytes of the cookie value. If no\n   such cookie is present in the request, the key type defaults toALL.\n   - HTTP_PATH: The URL path of the HTTP request. The key\n   value is truncated to the first 128 bytes. \n   - SNI: Server name indication in the TLS session of\n   the HTTPS request. The key value is truncated to the first 128 bytes.\n   The key type defaults to ALL on a HTTP session. \n   - REGION_CODE: The country/region from which the\n   request originates. \n   - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the\n   client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\n   key type defaults to ALL. \n   - USER_IP: The IP address of the originating client,\n   which is resolved based on \"userIpRequestHeaders\" configured with the\n   security policy. If there is no \"userIpRequestHeaders\" configuration\n   or an IP address cannot be resolved from it, the key type defaults toIP. \n   - ASN: The autonomous system number of the originating\n   client. If not available, the key type defaults toALL.\n   - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the\n   client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\n   key type defaults to ALL.",
          "enum": [
            "ALL",
            "ASN",
            "HTTP_COOKIE",
            "HTTP_HEADER",
            "HTTP_PATH",
            "IP",
            "REGION_CODE",
            "SNI",
            "TLS_JA3_FINGERPRINT",
            "TLS_JA4_FINGERPRINT",
            "USER_IP",
            "XFF_IP"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ]
        },
        "enforceOnKeyName": {
          "type": "string",
          "description": "Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the\nkey value. HTTP_COOKIE -- Name of the HTTP cookie whose value is\ntaken as the key value."
        }
      },
      "id": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig",
      "type": "object"
    },
    "ResourceStatusReservationConsumptionInfo": {
      "description": "Reservation consumption information that the instance is consuming from.",
      "properties": {
        "consumedReservationSubBlock": {
          "readOnly": true,
          "description": "Output only. [Output Only] The full resource name of the reservation sub-block that\nthis instance is consuming from.",
          "type": "string"
        },
        "consumedReservation": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The full resource name of the reservation that this\ninstance is consuming from."
        },
        "consumedReservationBlock": {
          "readOnly": true,
          "description": "Output only. [Output Only] The full resource name of the reservation block that this\ninstance is consuming from.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ResourceStatusReservationConsumptionInfo"
    },
    "WireEndpoint": {
      "properties": {
        "interconnect": {
          "readOnly": true,
          "type": "string"
        },
        "vlanTag": {
          "format": "int32",
          "type": "integer",
          "readOnly": true
        }
      },
      "id": "WireEndpoint",
      "type": "object",
      "description": "Wire endpoints are specific Interconnect connections."
    },
    "RegionUrlMapsValidateRequest": {
      "id": "RegionUrlMapsValidateRequest",
      "properties": {
        "resource": {
          "$ref": "UrlMap",
          "description": "Content of the UrlMap to be validated."
        }
      },
      "type": "object"
    },
    "InterconnectGroupsListResponse": {
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "items": {
          "items": {
            "$ref": "InterconnectGroup"
          },
          "description": "A list of InterconnectGroup resources.",
          "type": "array"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "etag": {
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          }
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "kind": {
          "readOnly": true,
          "default": "compute#InterconnectGroup",
          "type": "string"
        }
      },
      "type": "object",
      "id": "InterconnectGroupsListResponse"
    },
    "NodeTemplatesScopedList": {
      "id": "NodeTemplatesScopedList",
      "type": "object",
      "properties": {
        "nodeTemplates": {
          "type": "array",
          "description": "[Output Only] A list of node templates contained in this scope.",
          "items": {
            "$ref": "NodeTemplate"
          }
        },
        "warning": {
          "properties": {
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "type": "object",
          "description": "[Output Only] An informational warning that appears when the node templates\nlist is empty."
        }
      }
    },
    "InstanceGroupManagersCreateInstancesRequest": {
      "properties": {
        "instances": {
          "items": {
            "$ref": "PerInstanceConfig"
          },
          "type": "array",
          "description": "[Required] List of specifications of per-instance configs."
        }
      },
      "description": "InstanceGroupManagers.createInstances",
      "id": "InstanceGroupManagersCreateInstancesRequest",
      "type": "object"
    },
    "RegionNetworkEndpointGroupsDetachEndpointsRequest": {
      "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest",
      "type": "object",
      "properties": {
        "networkEndpoints": {
          "type": "array",
          "items": {
            "$ref": "NetworkEndpoint"
          },
          "description": "The list of network endpoints to be detached."
        }
      }
    },
    "Network": {
      "properties": {
        "mtu": {
          "format": "int32",
          "type": "integer",
          "description": "Maximum Transmission Unit in bytes.\nThe minimum value for this field is 1300 and the maximum value is 8896.\nThe suggested value is 1500, which is the default MTU used on the\nInternet, or 8896 if you want to use Jumbo frames. If unspecified, the\nvalue defaults to 1460."
        },
        "routingConfig": {
          "description": "The network-level routing configuration for this network.  Used by Cloud\nRouter to determine what type of network-wide routing behavior to enforce.",
          "$ref": "NetworkRoutingConfig"
        },
        "IPv4Range": {
          "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}",
          "type": "string",
          "description": "Deprecated in favor of subnet mode networks.\nThe range of internal addresses that are legal on this network. This\nrange is aCIDR specification, for example:192.168.0.0/16. Provided by the client when the network is\ncreated.",
          "deprecated": true
        },
        "id": {
          "readOnly": true,
          "format": "uint64",
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "selfLinkWithId": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.",
          "readOnly": true
        },
        "autoCreateSubnetworks": {
          "type": "boolean",
          "description": "Must be set to create a VPC network. If not set, a legacy network is\ncreated.\n\nWhen set to true, the VPC network is created in auto mode.\nWhen set to false, the VPC network is created in custom mode.\n\nAn auto mode VPC network starts with one subnet per region. Each subnet\nhas a predetermined range as described inAuto mode VPC network IP ranges.\n\nFor custom mode VPC networks, you can add subnets using the subnetworksinsert\nmethod."
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "internalIpv6Range": {
          "description": "When enabling ula internal ipv6, caller optionally can specify the /48\nrange they want from the google defined ULA prefix fd20::/20. The input\nmust be a valid /48 ULA IPv6 address and must be within the fd20::/20.\nOperation will fail if the speficied /48 is already in used by another\nresource. If the field is not speficied, then a /48 range will be randomly\nallocated from fd20::/20 and returned via this field.\n.",
          "type": "string"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a\nlowercase letter, and all following characters (except for the last\ncharacter) must be a dash, lowercase letter, or digit. The last character\nmust be a lowercase letter or digit.",
          "annotations": {
            "required": [
              "compute.networks.insert"
            ]
          },
          "type": "string"
        },
        "description": {
          "description": "An optional description of this resource. Provide this field when you\ncreate the resource.",
          "type": "string"
        },
        "networkProfile": {
          "type": "string",
          "description": "A full or partial URL of the network profile to apply to this network.\nThis field can be set only at resource creation time. For example, the\nfollowing are valid URLs: \n   \n   - https://www.googleapis.com/compute/{api_version}/projects/{project_id}/global/networkProfiles/{network_profile_name}\n   - projects/{project_id}/global/networkProfiles/{network_profile_name}"
        },
        "gatewayIPv4": {
          "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}",
          "description": "[Output Only] The gateway address for default routing out of the network,\nselected by Google Cloud.",
          "type": "string"
        },
        "enableUlaInternalIpv6": {
          "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign\na /48 from google defined ULA prefix fd20::/20.\n.",
          "type": "boolean"
        },
        "networkFirewallPolicyEnforcementOrder": {
          "type": "string",
          "description": "The network firewall policy enforcement order. Can be either\nAFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults to\nAFTER_CLASSIC_FIREWALL if the field is not specified.",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "AFTER_CLASSIC_FIREWALL",
            "BEFORE_CLASSIC_FIREWALL"
          ]
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#network",
          "description": "Output only. [Output Only] Type of the resource. Always compute#network for\nnetworks."
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "peerings": {
          "description": "Output only. [Output Only] A list of network peerings for the resource.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "NetworkPeering"
          }
        },
        "subnetworks": {
          "description": "[Output Only] Server-defined fully-qualified URLs for all subnetworks\nin this VPC network.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "params": {
          "$ref": "NetworkParams",
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload."
        },
        "firewallPolicy": {
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the firewall policy the network is associated with.",
          "type": "string"
        }
      },
      "id": "Network",
      "description": "Represents a VPC Network resource.\n\nNetworks connect resources to each other and to the internet. For more\ninformation, readVirtual Private Cloud (VPC) Network.",
      "type": "object"
    },
    "RegexRewrite": {
      "id": "RegexRewrite",
      "properties": {
        "pathPattern": {
          "description": "Required. The regular expression used to match against the URL path.\nIt uses RE2 syntax with the following constraints:\n   \n   \n     - Any single character operators\n     - Groups are allowed to have only submatch operator inside\n     - Groups are allowed only without any char repetition, e.g.\n     .*\n     - Any char repetition, e.g. .*, is\n     only allowed to be used in a single regex together with:\n       \n      \n            - Empty string operators\n            - Other repetitions\n            - Ranges\n            - Repetitions of ranges\n          \n     \n     - Ranges are only allowed to have:\n       \n      \n            - Character range\n            - Digits range\n            - Symbols listed in characters allowed for ranges",
          "type": "string"
        },
        "pathSubstitution": {
          "description": "Required. Required when path pattern is specified. Used to rewrite matching parts of\nthe path.",
          "type": "string"
        }
      },
      "description": "The spec for modifying the path using a regular expression.",
      "type": "object"
    },
    "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata": {
      "type": "object",
      "id": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata",
      "properties": {
        "state": {
          "enumDescriptions": [
            "Iteration was explicitly cancelled.",
            "Iteration completed, with all actions being successful.",
            "Iteration completed, with failures.",
            "The rollout is paused.",
            "Iteration is in progress.",
            "Impossible to determine current state of the iteration.",
            "Default value. This value is unused."
          ],
          "type": "string",
          "enum": [
            "STATE_CANCELLED",
            "STATE_COMPLETED",
            "STATE_FAILED",
            "STATE_PAUSED",
            "STATE_PROCESSING",
            "STATE_UNKNOWN",
            "STATE_UNSPECIFIED"
          ],
          "description": "Output only. [Output Only] The overall state of the rollout.",
          "readOnly": true
        },
        "locationRolloutStatus": {
          "description": "Output only. [Output Only] The rollout status for each location. The list of the\nlocations is the same as the list of locations in the rollout plan.",
          "type": "object",
          "additionalProperties": {
            "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus"
          },
          "readOnly": true
        },
        "rollout": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the rollout.\nEx. projects//locations/global/rollouts/."
        },
        "rolloutPlan": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the rollout plan.\nEx.\nprojects//locations/global/rolloutPlans/."
        }
      }
    },
    "Int64RangeMatch": {
      "id": "Int64RangeMatch",
      "type": "object",
      "description": "HttpRouteRuleMatch criteria for field values that must stay\nwithin the specified integer range.",
      "properties": {
        "rangeEnd": {
          "description": "The end of the range (exclusive) in signed long integer format.",
          "format": "int64",
          "type": "string"
        },
        "rangeStart": {
          "description": "The start of the range (inclusive) in signed long integer format.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "BackendServiceParams": {
      "description": "Additional Backend Service parameters.",
      "id": "BackendServiceParams",
      "type": "object",
      "properties": {
        "resourceManagerTags": {
          "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "InterconnectLocation": {
      "type": "object",
      "description": "Represents an Interconnect Attachment (VLAN) Location resource.\n\nYou can use this resource to find location details about an Interconnect\nattachment (VLAN). For more information about interconnect attachments, read\nCreating VLAN Attachments.",
      "properties": {
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "address": {
          "readOnly": true,
          "description": "Output only. [Output Only] The postal address of the Point of Presence, each line in\nthe address is separated by a newline character.",
          "type": "string"
        },
        "facilityProvider": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The name of the provider for this facility (e.g., EQUINIX)."
        },
        "description": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] An optional description of the resource."
        },
        "availableLinkTypes": {
          "items": {
            "enumDescriptions": [
              "100G Ethernet, LR Optics.",
              "10G Ethernet, LR Optics.\n[(rate_bps) =  10000000000];",
              "400G Ethernet, LR4 Optics."
            ],
            "type": "string",
            "enum": [
              "LINK_TYPE_ETHERNET_100G_LR",
              "LINK_TYPE_ETHERNET_10G_LR",
              "LINK_TYPE_ETHERNET_400G_LR4"
            ]
          },
          "type": "array",
          "description": "[Output only] List of link types available at this InterconnectLocation,\nwhich can take one of the following values:\n   \n   - LINK_TYPE_ETHERNET_10G_LR\n   - LINK_TYPE_ETHERNET_100G_LR\n   - LINK_TYPE_ETHERNET_400G_LR4"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Name of the resource."
        },
        "singleRegionProductionCriticalPeerLocations": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. [Output Only] URLs of the other locations that can pair up with this\nlocation to support Single-Region 99.99% SLA. E.g. iad-zone1-1 and\niad-zone2-5467 are Single-Region 99.99% peer locations of each other."
        },
        "regionInfos": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output Only] A list of InterconnectLocation.RegionInfo objects, that\ndescribe parameters pertaining to the relation between this\nInterconnectLocation and various Google Cloud regions.",
          "items": {
            "$ref": "InterconnectLocationRegionInfo"
          }
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#interconnectLocation for interconnect locations.",
          "type": "string",
          "readOnly": true,
          "default": "compute#interconnectLocation"
        },
        "continent": {
          "enum": [
            "AFRICA",
            "ASIA_PAC",
            "C_AFRICA",
            "C_ASIA_PAC",
            "C_EUROPE",
            "C_NORTH_AMERICA",
            "C_SOUTH_AMERICA",
            "EUROPE",
            "NORTH_AMERICA",
            "SOUTH_AMERICA"
          ],
          "description": "[Output Only] Continent for this location, which can take one of the\nfollowing values:\n   \n   - AFRICA\n   - ASIA_PAC\n   - EUROPE\n   - NORTH_AMERICA\n   - SOUTH_AMERICA",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "supportsPzs": {
          "description": "Output only. [Output Only] Reserved for future use.",
          "type": "boolean",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "facilityProviderFacilityId": {
          "readOnly": true,
          "description": "Output only. [Output Only] A provider-assigned Identifier for this facility (e.g.,\nAshburn-DC1).",
          "type": "string"
        },
        "crossSiteInterconnectInfos": {
          "description": "[Output Only] A list of InterconnectLocation.CrossSiteInterconnectInfo\nobjects, that describe where Cross-Site Interconnect wires may connect to\nfrom this location and associated connection parameters. Cross-Site\nInterconnect isn't allowed to locations which are not listed.",
          "items": {
            "$ref": "InterconnectLocationCrossSiteInterconnectInfo"
          },
          "type": "array"
        },
        "availableFeatures": {
          "type": "array",
          "description": "[Output only] List of features available at this InterconnectLocation,\nwhich can take one of the following values:\n   \n   - IF_MACSEC\n   - IF_CROSS_SITE_NETWORK",
          "items": {
            "enumDescriptions": [
              "Cross-Site Networking",
              "L2 Interconnect Attachment Forwarding",
              "Media Access Control security (MACsec)"
            ],
            "type": "string",
            "enum": [
              "IF_CROSS_SITE_NETWORK",
              "IF_L2_FORWARDING",
              "IF_MACSEC"
            ]
          }
        },
        "availabilityZone": {
          "description": "[Output Only] Availability zone for this InterconnectLocation. Within a\nmetropolitan area (metro), maintenance will not be simultaneously scheduled\nin more than one availability zone.  Example: \"zone1\" or \"zone2\".",
          "type": "string"
        },
        "peeringdbFacilityId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The peeringdb identifier for this facility (corresponding\nwith a netfac type in peeringdb)."
        },
        "city": {
          "description": "[Output Only] Metropolitan area designator that indicates which city an\ninterconnect is located.\nFor example: \"Chicago, IL\", \"Amsterdam, Netherlands\".",
          "type": "string"
        },
        "status": {
          "enum": [
            "AVAILABLE",
            "CLOSED"
          ],
          "description": "[Output Only] The status of this InterconnectLocation, which can take one\nof the following values:\n   \n   - CLOSED: The InterconnectLocation is closed and is unavailable for\n   provisioning new Interconnects.\n   - AVAILABLE: The InterconnectLocation is available for provisioning new\n   Interconnects.",
          "enumDescriptions": [
            "The InterconnectLocation is available for provisioning new Interconnects.",
            "The InterconnectLocation is closed for provisioning new Interconnects."
          ],
          "type": "string"
        }
      },
      "id": "InterconnectLocation"
    },
    "AllocationReservationSharingPolicy": {
      "type": "object",
      "properties": {
        "serviceShareType": {
          "enum": [
            "ALLOW_ALL",
            "DISALLOW_ALL",
            "SERVICE_SHARE_TYPE_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "Allow all Google Cloud managed services to share reservations.",
            "[Default] Disallow sharing with all Google Cloud services.",
            ""
          ],
          "description": "Sharing config for all Google Cloud services.",
          "type": "string"
        }
      },
      "id": "AllocationReservationSharingPolicy"
    },
    "BackendCustomMetric": {
      "description": "Custom Metrics are used for CUSTOM_METRICS balancing_mode.",
      "id": "BackendCustomMetric",
      "properties": {
        "dryRun": {
          "description": "If true, the metric data is collected and reported to Cloud\nMonitoring, but is not used for load balancing.",
          "type": "boolean"
        },
        "maxUtilization": {
          "format": "float",
          "description": "Optional parameter to define a target utilization for the Custom Metrics\nbalancing mode. The valid range is [0.0, 1.0].",
          "type": "number"
        },
        "name": {
          "description": "Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression\n`[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to EXTERNAL_MANAGED,INTERNAL_MANAGED INTERNAL_SELF_MANAGED.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SourceInstanceParams": {
      "id": "SourceInstanceParams",
      "type": "object",
      "properties": {
        "diskConfigs": {
          "type": "array",
          "description": "Attached disks configuration. If not provided, defaults are applied:\nFor boot disk and any other R/W disks, the source images for each disk\nwill be used. For read-only disks, they will be attached in read-only\nmode. Local SSD disks will be created as blank volumes.",
          "items": {
            "$ref": "DiskInstantiationConfig"
          }
        }
      },
      "description": "A specification of the parameters to use when creating the instance template\nfrom a source instance."
    },
    "DisksStartAsyncReplicationRequest": {
      "properties": {
        "asyncSecondaryDisk": {
          "description": "The secondary disk to start asynchronous replication to.\nYou can provide this as a partial or full URL to the resource. For example,\nthe following are valid values:\n   \n   \n     - \n       https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n     \n     - \n       https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n     \n     - \n       projects/project/zones/zone/disks/disk\n     \n     - \n       projects/project/regions/region/disks/disk\n     \n     - \n       zones/zone/disks/disk\n     \n     - \n       regions/region/disks/disk",
          "type": "string"
        }
      },
      "type": "object",
      "id": "DisksStartAsyncReplicationRequest"
    },
    "RegionInstanceGroupsListInstancesRequest": {
      "properties": {
        "instanceState": {
          "description": "Instances in which state should be returned. Valid options are:\n'ALL', 'RUNNING'. By default, it lists all instances.",
          "type": "string",
          "enumDescriptions": [
            "Matches any status of the instances, running, non-running and others.",
            "Instance is in RUNNING state if it is running."
          ],
          "enum": [
            "ALL",
            "RUNNING"
          ]
        },
        "portName": {
          "description": "Name of port user is interested in. It is optional. If it is set, only\ninformation about this ports will be returned. If it is not set, all the\nnamed ports will be returned.\nAlways lists all instances.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        }
      },
      "id": "RegionInstanceGroupsListInstancesRequest",
      "type": "object"
    },
    "BackendServiceHAPolicyLeader": {
      "properties": {
        "backendGroup": {
          "type": "string",
          "description": "A fully-qualified URL (starting with https://www.googleapis.com/)\nof the zonal Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints\nthat the leader is attached to.\n\nThe leader's backendGroup must already be specified as a backend of\nthis backend service. Removing a backend that is designated as the\nleader's backendGroup is not permitted."
        },
        "networkEndpoint": {
          "description": "The network endpoint within the leader.backendGroup that is\ndesignated as the leader.\n\nThis network endpoint cannot be detached from the NEG specified in\nthe haPolicy.leader.backendGroup until the leader is updated with\nanother network endpoint, or the leader is removed from the haPolicy.",
          "$ref": "BackendServiceHAPolicyLeaderNetworkEndpoint"
        }
      },
      "id": "BackendServiceHAPolicyLeader",
      "type": "object"
    },
    "StoragePoolResourceStatus": {
      "id": "StoragePoolResourceStatus",
      "description": "[Output Only] Contains output only fields.",
      "properties": {
        "diskCount": {
          "description": "[Output Only] Number of disks used.",
          "format": "int64",
          "type": "string"
        },
        "poolUsedCapacityBytes": {
          "type": "string",
          "format": "int64",
          "description": "[Output Only] Space used by data stored in disks within the storage pool\n(in bytes). This will reflect the total number of bytes written to the\ndisks in the pool, in contrast to the capacity of those disks."
        },
        "lastResizeTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Timestamp of the last successful resize inRFC3339 text format."
        },
        "exapoolMaxWriteThroughput": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Maximum allowed write throughput in MiB/s\nfor this Exapool.",
          "format": "int64"
        },
        "exapoolMaxReadThroughput": {
          "type": "string",
          "description": "Output only. [Output Only] Maximum allowed read throughput in MiB/s for\nthis Exapool.",
          "readOnly": true,
          "format": "int64"
        },
        "maxTotalProvisionedDiskCapacityGb": {
          "description": "[Output Only] Maximum allowed aggregate disk size in GiB.",
          "format": "int64",
          "type": "string"
        },
        "totalProvisionedDiskCapacityGb": {
          "description": "[Output Only] Sum of all the disks' provisioned capacity (in GiB) in\nthis storage pool. A disk's provisioned capacity is the same as its total\ncapacity.",
          "type": "string",
          "format": "int64"
        },
        "poolUsedThroughput": {
          "description": "[Output Only] Sum of all the disks' provisioned throughput in MiB/s.",
          "format": "int64",
          "type": "string"
        },
        "poolUsedIops": {
          "format": "int64",
          "description": "[Output Only] Sum of all the disks' provisioned IOPS, minus some amount\nthat is allowed per disk that is not counted towards pool's IOPS\ncapacity. For more information, see\nhttps://cloud.google.com/compute/docs/disks/storage-pools.",
          "type": "string"
        },
        "totalProvisionedDiskIops": {
          "format": "int64",
          "description": "[Output Only] Sum of all the disks' provisioned IOPS.",
          "type": "string"
        },
        "exapoolMaxWriteIops": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. [Output Only] Maximum allowed write IOPS for this Exapool."
        },
        "exapoolMaxReadIops": {
          "format": "int64",
          "description": "Output only. [Output Only] Maximum allowed read IOPS for this Exapool.",
          "readOnly": true,
          "type": "string"
        },
        "poolUserWrittenBytes": {
          "format": "int64",
          "description": "[Output Only] Amount of data written into the pool, before it is\ncompacted.",
          "type": "string"
        },
        "totalProvisionedDiskThroughput": {
          "description": "[Output Only] Sum of all the disks' provisioned throughput in MiB/s,\nminus some amount that is allowed per disk that is not counted towards\npool's throughput capacity.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "AutoscalingPolicyCpuUtilization": {
      "id": "AutoscalingPolicyCpuUtilization",
      "type": "object",
      "properties": {
        "utilizationTarget": {
          "format": "double",
          "description": "The target CPU utilization that the autoscaler maintains. Must be\na float value in the range (0, 1]. If not specified, the default is0.6.\n\nIf the CPU level is below the target utilization, the autoscaler scales\nin the number of instances until it reaches the minimum number of\ninstances you specified or until the average CPU of your instances\nreaches the target utilization.\n\nIf the average CPU is above the target utilization, the autoscaler\nscales out until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.",
          "type": "number"
        },
        "predictiveMethod": {
          "description": "Indicates whether predictive autoscaling based on CPU metric is enabled.\nValid values are:\n\n* NONE (default). No predictive method is used. The autoscaler scales the\ngroup to meet current demand based on real-time metrics.\n* OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by\nmonitoring daily and weekly load patterns and scaling out ahead of\nanticipated demand.",
          "enumDescriptions": [
            "No predictive method is used. The autoscaler scales the group to meet\ncurrent demand based on real-time metrics",
            "Predictive autoscaling improves availability by monitoring daily and\nweekly load patterns and scaling out ahead of anticipated demand."
          ],
          "enum": [
            "NONE",
            "OPTIMIZE_AVAILABILITY"
          ],
          "type": "string"
        }
      },
      "description": "CPU utilization policy."
    },
    "InstantSnapshotAggregatedList": {
      "type": "object",
      "id": "InstantSnapshotAggregatedList",
      "properties": {
        "unreachables": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#instantSnapshotAggregatedList for aggregated lists of\ninstantSnapshots.",
          "default": "compute#instantSnapshotAggregatedList",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "code": {
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          },
          "type": "object"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "items": {
          "additionalProperties": {
            "$ref": "InstantSnapshotsScopedList",
            "description": "[Output Only] Name of the scope containing this set of instantSnapshots."
          },
          "description": "A list of InstantSnapshotsScopedList resources.",
          "type": "object"
        }
      }
    },
    "AuditConfig": {
      "type": "object",
      "id": "AuditConfig",
      "properties": {
        "auditLogConfigs": {
          "description": "The configuration for logging of each type of permission.",
          "items": {
            "$ref": "AuditLogConfig"
          },
          "type": "array"
        },
        "service": {
          "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.",
          "type": "string"
        }
      },
      "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditLogConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n    {\n      \"audit_configs\": [\n        {\n          \"service\": \"allServices\",\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\",\n              \"exempted_members\": [\n                \"user:jose@example.com\"\n              ]\n            },\n            {\n              \"log_type\": \"DATA_WRITE\"\n            },\n            {\n              \"log_type\": \"ADMIN_READ\"\n            }\n          ]\n        },\n        {\n          \"service\": \"sampleservice.googleapis.com\",\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\"\n            },\n            {\n              \"log_type\": \"DATA_WRITE\",\n              \"exempted_members\": [\n                \"user:aliya@example.com\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n\nFor sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts `jose@example.com` from DATA_READ logging, and\n`aliya@example.com` from DATA_WRITE logging."
    },
    "ForwardingRulesScopedList": {
      "properties": {
        "forwardingRules": {
          "items": {
            "$ref": "ForwardingRule"
          },
          "type": "array",
          "description": "A list of forwarding rules contained in this scope."
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "description": "Informational warning which replaces the list of forwarding rules when\nthe list is empty."
        }
      },
      "id": "ForwardingRulesScopedList",
      "type": "object"
    },
    "FutureReservationStatusExistingMatchingUsageInfo": {
      "id": "FutureReservationStatusExistingMatchingUsageInfo",
      "properties": {
        "count": {
          "format": "int64",
          "description": "Output only. Count to represent min(FR total_count,\nmatching_reserved_capacity+matching_unreserved_instances)",
          "readOnly": true,
          "type": "string"
        },
        "timestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Timestamp when the matching usage was calculated"
        }
      },
      "type": "object",
      "description": "[Output Only] Represents the existing matching usage for the future\nreservation."
    },
    "Backend": {
      "description": "Message containing information of one individual backend.",
      "id": "Backend",
      "properties": {
        "maxConnectionsPerInstance": {
          "type": "integer",
          "format": "int32",
          "description": "Defines a target maximum number of simultaneous connections.\nFor usage guidelines, seeConnection\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isRATE."
        },
        "failover": {
          "description": "This field designates whether this is a failover backend. More than one\nfailover backend can be configured for a given BackendService.\n\nThis field can only be used for a regional external Passthrough Network\nLoad Balancer or a regional internal Passthrough Network Load Balancer.",
          "type": "boolean"
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "balancingMode": {
          "enumDescriptions": [
            "Balance based on the number of simultaneous connections.",
            "Based on custom defined and reported metrics.",
            "Balance based on the number of in-flight requests.",
            "Balance based on requests per second (RPS).",
            "Balance based on the backend utilization."
          ],
          "enum": [
            "CONNECTION",
            "CUSTOM_METRICS",
            "IN_FLIGHT",
            "RATE",
            "UTILIZATION"
          ],
          "description": "Specifies how to determine whether the backend of a load balancer can\nhandle additional traffic or is fully loaded. For usage guidelines, see\nConnection balancing mode.\n\nBackends must use compatible balancing modes. Backends of a backend\nservice may use different balancing modes. For more information, see \nSupported balancing modes and target capacity settings and\nRestrictions and guidance for instance groups.\n\nNote: Currently, if you use the API to configure incompatible balancing\nmodes, the configuration might be accepted even though it has no impact\nand is ignored. Specifically, Backend.maxUtilization is ignored when\nBackend.balancingMode is RATE. In the future, this incompatible combination\nwill be rejected.",
          "type": "string"
        },
        "maxInFlightRequestsPerEndpoint": {
          "type": "integer",
          "description": "Defines a maximum number of in-flight requests for a single endpoint.\nNot available if backend's balancingMode is RATE\nor CONNECTION.",
          "format": "int32"
        },
        "maxConnectionsPerEndpoint": {
          "format": "int32",
          "description": "Defines a target maximum number of simultaneous connections.  For usage\nguidelines, seeConnection\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isRATE.",
          "type": "integer"
        },
        "preference": {
          "type": "string",
          "description": "This field indicates whether this backend should be fully utilized before\nsending traffic to backends with default preference. The possible values\nare:\n   \n   - PREFERRED: Backends with this preference level will be\n   filled up to their capacity limits first, based on RTT.\n   - DEFAULT:  If preferred backends don't have enough\n   capacity, backends in this layer would be used and traffic would be\n   assigned based on the load balancing algorithm you use. This is the\n   default\n\n\n\nFor global external Passthrough Network Load Balancers, the following\nrestrictions apply:\n   \n   - At most one backend can be marked as PREFERRED.\n   - PREFERRED and DEFAULT backends cannot reside\n   in the same Cloud region.",
          "enum": [
            "DEFAULT",
            "PREFERENCE_UNSPECIFIED",
            "PREFERRED"
          ],
          "enumDescriptions": [
            "No preference.",
            "If preference is unspecified, we set it to the DEFAULT value",
            "Traffic will be sent to this backend first."
          ]
        },
        "trafficDuration": {
          "type": "string",
          "enum": [
            "LONG",
            "SHORT",
            "TRAFFIC_DURATION_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "Most of the requests are expected to take more than multiple seconds to\nfinish.",
            "Most requests are expected to finish with a sub-second latency.",
            "Traffic duration is unspecified."
          ]
        },
        "orchestrationInfo": {
          "$ref": "BackendBackendOrchestrationInfo",
          "description": "Information about the resource or system that manages the backend."
        },
        "maxInFlightRequestsPerInstance": {
          "format": "int32",
          "description": "Defines a maximum number of in-flight requests for a single VM.\nNot available if backend's balancingMode is RATE\nor CONNECTION.",
          "type": "integer"
        },
        "maxConnections": {
          "description": "Defines a target maximum number of simultaneous connections. For usage\nguidelines, seeConnection\nbalancing mode and Utilization\nbalancing mode. Not available if the backend'sbalancingMode is RATE.",
          "format": "int32",
          "type": "integer"
        },
        "group": {
          "description": "The fully-qualified URL of aninstance\ngroup or network endpoint\ngroup (NEG) resource. To determine what types of backends a load\nbalancer supports, see the [Backend services\noverview](https://cloud.google.com/load-balancing/docs/backend-service#backends).\n\nYou must use the *fully-qualified* URL (starting withhttps://www.googleapis.com/) to specify the instance group\nor NEG. Partial URLs are not supported.\n\nIf haPolicy is specified, backends must refer to NEG resources of type\nGCE_VM_IP.",
          "type": "string"
        },
        "capacityScaler": {
          "type": "number",
          "format": "float",
          "description": "A multiplier applied to the backend's target capacity of its balancing\nmode.\nThe default value is 1, which means the group serves up to\n100% of its configured capacity (depending onbalancingMode). A setting of 0 means the group is\ncompletely drained, offering 0% of its available capacity. The valid ranges\nare 0.0 and [0.1,1.0].\nYou cannot configure a setting larger than 0 and smaller than0.1.\nYou cannot configure a setting of 0 when there is only one\nbackend attached to the backend service.\n\nNot available with backends that don't support using abalancingMode. This includes backends such as global\ninternet NEGs, regional serverless NEGs, and PSC NEGs."
        },
        "maxRatePerEndpoint": {
          "description": "Defines a maximum target for requests per second (RPS). For usage\nguidelines, seeRate\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isCONNECTION.",
          "type": "number",
          "format": "float"
        },
        "maxRate": {
          "type": "integer",
          "format": "int32",
          "description": "Defines a maximum number of HTTP requests per second (RPS). For\nusage guidelines, seeRate\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isCONNECTION."
        },
        "maxUtilization": {
          "type": "number",
          "format": "float",
          "description": "Optional parameter to define a target capacity for theUTILIZATION balancing mode. The valid range is[0.0, 1.0].\n\nFor usage guidelines, seeUtilization\nbalancing mode."
        },
        "maxInFlightRequests": {
          "type": "integer",
          "description": "Defines a maximum number of in-flight requests for the whole NEG or\ninstance group. Not available if backend's balancingMode isRATE or CONNECTION.",
          "format": "int32"
        },
        "maxRatePerInstance": {
          "format": "float",
          "type": "number",
          "description": "Defines a maximum target for requests per second (RPS). For usage\nguidelines, seeRate\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isCONNECTION."
        },
        "customMetrics": {
          "type": "array",
          "items": {
            "$ref": "BackendCustomMetric"
          },
          "description": "List of custom metrics that are used for CUSTOM_METRICS\nBalancingMode."
        }
      },
      "type": "object"
    },
    "TargetHttpProxyList": {
      "type": "object",
      "properties": {
        "items": {
          "items": {
            "$ref": "TargetHttpProxy"
          },
          "type": "array",
          "description": "A list of TargetHttpProxy resources."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "type": "array"
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Type of resource. Always compute#targetHttpProxyList for lists\nof target HTTP proxies.",
          "default": "compute#targetHttpProxyList"
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        }
      },
      "id": "TargetHttpProxyList",
      "description": "A list of TargetHttpProxy resources."
    },
    "AddressAggregatedList": {
      "properties": {
        "items": {
          "additionalProperties": {
            "description": "[Output Only] Name of the scope containing this set of addresses.",
            "$ref": "AddressesScopedList"
          },
          "description": "A list of AddressesScopedList resources.",
          "type": "object"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "kind": {
          "readOnly": true,
          "default": "compute#addressAggregatedList",
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#addressAggregatedList for aggregated lists of\naddresses."
        }
      },
      "type": "object",
      "id": "AddressAggregatedList"
    },
    "VpnTunnelParams": {
      "type": "object",
      "properties": {
        "resourceManagerTags": {
          "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n  {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "id": "VpnTunnelParams"
    },
    "ForwardingRuleAttachedExtension": {
      "type": "object",
      "id": "ForwardingRuleAttachedExtension",
      "properties": {
        "reference": {
          "type": "string",
          "description": "Output only. The resource name.",
          "readOnly": true
        }
      },
      "description": "Reference to an extension resource that is attached to this ForwardingRule."
    },
    "SubnetworkAggregatedList": {
      "type": "object",
      "id": "SubnetworkAggregatedList",
      "properties": {
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "type": "array"
            }
          }
        },
        "items": {
          "additionalProperties": {
            "$ref": "SubnetworksScopedList",
            "description": "Name of the scope containing this set of Subnetworks."
          },
          "description": "A list of SubnetworksScopedList resources.",
          "type": "object"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#subnetworkAggregatedList for aggregated lists of\nsubnetworks.",
          "default": "compute#subnetworkAggregatedList",
          "type": "string"
        },
        "unreachables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        }
      }
    },
    "Router": {
      "properties": {
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "id": {
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "md5AuthenticationKeys": {
          "items": {
            "$ref": "RouterMd5AuthenticationKey"
          },
          "description": "Keys used for MD5 authentication.",
          "type": "array"
        },
        "nccGateway": {
          "type": "string",
          "description": "URI of the ncc_gateway to which this router associated."
        },
        "region": {
          "description": "[Output Only] URI of the region where the router resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.routers.insert"
            ]
          }
        },
        "encryptedInterconnectRouter": {
          "type": "boolean",
          "description": "Indicates if a router is dedicated for use with encrypted VLAN\nattachments (interconnectAttachments)."
        },
        "bgpPeers": {
          "type": "array",
          "description": "BGP information that must be configured into the routing stack to\nestablish BGP peering. This information must specify the peer ASN and\neither the interface name, IP address, or peer IP address. Please refer toRFC4273.",
          "items": {
            "$ref": "RouterBgpPeer"
          }
        },
        "nats": {
          "description": "A list of NAT services created in this router.",
          "items": {
            "$ref": "RouterNat"
          },
          "type": "array"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Always compute#router for\nrouters.",
          "default": "compute#router"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "interfaces": {
          "items": {
            "$ref": "RouterInterface"
          },
          "description": "Router interfaces.\nTo create a BGP peer that uses a router interface,\nthe interface must have one of the following fields specified:\n   \n   - linkedVpnTunnel\n   - linkedInterconnectAttachment\n   - subnetwork\n\n\nYou can create a router interface without any of these fields specified.\nHowever, you cannot create a BGP peer that uses that interface.",
          "type": "array"
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "RouterParams"
        },
        "bgp": {
          "$ref": "RouterBgp",
          "description": "BGP information specific to this router."
        },
        "network": {
          "description": "URI of the network to which this router belongs.",
          "annotations": {
            "required": [
              "compute.routers.insert",
              "compute.routers.update"
            ]
          },
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents a Cloud Router resource.\n\nFor more information about Cloud Router, read theCloud\nRouter overview.",
      "id": "Router"
    },
    "RolloutPlanWaveValidationTimeBasedValidationMetadata": {
      "id": "RolloutPlanWaveValidationTimeBasedValidationMetadata",
      "description": "Metadata required if type = \"time\".",
      "properties": {
        "waitDuration": {
          "description": "Optional. The duration that the system waits in between waves. This wait starts\nafter all changes in the wave are rolled out.",
          "format": "google-duration",
          "type": "string"
        }
      },
      "type": "object"
    },
    "LicenseResourceCommitment": {
      "type": "object",
      "description": "Commitment for a particular license resource.",
      "id": "LicenseResourceCommitment",
      "properties": {
        "amount": {
          "type": "string",
          "format": "int64",
          "description": "The number of licenses you plan to purchase."
        },
        "license": {
          "type": "string",
          "description": "The applicable license URI."
        },
        "coresPerLicense": {
          "type": "string",
          "description": "The number of cores per license."
        }
      }
    },
    "NetworkEndpointGroupPscData": {
      "id": "NetworkEndpointGroupPscData",
      "type": "object",
      "properties": {
        "pscConnectionId": {
          "type": "string",
          "readOnly": true,
          "format": "uint64",
          "description": "Output only. [Output Only] The PSC connection id of the PSC Network Endpoint Group\nConsumer."
        },
        "pscConnectionStatus": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The connection has been accepted by the producer.",
            "The connection has been closed by the producer and will not serve\ntraffic going forward.",
            "The connection has been accepted by the producer, but the producer\nneeds to take further action before the forwarding rule can serve\ntraffic.",
            "The connection is pending acceptance by the producer.",
            "The connection has been rejected by the producer.",
            ""
          ],
          "enum": [
            "ACCEPTED",
            "CLOSED",
            "NEEDS_ATTENTION",
            "PENDING",
            "REJECTED",
            "STATUS_UNSPECIFIED"
          ],
          "description": "Output only. [Output Only] The connection status of the PSC Forwarding Rule."
        },
        "producerPort": {
          "type": "integer",
          "description": "The psc producer port is used to connect PSC NEG with specific port on\nthe PSC Producer side; should only be used for the\nPRIVATE_SERVICE_CONNECT NEG type",
          "format": "int32"
        },
        "consumerPscAddress": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Address allocated from given subnetwork for PSC. This IP\naddress acts as a VIP for a PSC NEG, allowing it to act as an endpoint in\nL7 PSC-XLB."
        }
      },
      "description": "All data that is specifically relevant to only network endpoint groups of\ntype PRIVATE_SERVICE_CONNECT."
    },
    "DisksScopedList": {
      "id": "DisksScopedList",
      "type": "object",
      "properties": {
        "disks": {
          "items": {
            "$ref": "Disk"
          },
          "type": "array",
          "description": "[Output Only] A list of disks contained in this scope."
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning which replaces the list of disks when\nthe list is empty.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            }
          }
        }
      }
    },
    "PreviewFeatureRolloutOperationRolloutInput": {
      "id": "PreviewFeatureRolloutOperationRolloutInput",
      "description": "Represents the input for the rollout operation.",
      "properties": {
        "name": {
          "description": "The name of the rollout plan\nEx.\norganizations//locations/global/rolloutPlans/\nEx.\nfolders//locations/global/rolloutPlans/\nEx.\nprojects//locations/global/rolloutPlans/.",
          "type": "string"
        },
        "predefinedRolloutPlan": {
          "type": "string",
          "description": "Predefined rollout plan.",
          "enum": [
            "ROLLOUT_PLAN_FAST_ROLLOUT",
            "ROLLOUT_PLAN_TWO_DAY_ROLLOUT",
            "ROLLOUT_PLAN_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ]
        }
      },
      "type": "object"
    },
    "CompositeHealthCheck": {
      "properties": {
        "id": {
          "format": "uint64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] A unique identifier for this resource type. The server\ngenerates this identifier."
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the composite health check resides.\nThis field applies only to the regional resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#compositeHealthCheck",
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#compositeHealthCheck for composite health checks."
        },
        "healthSources": {
          "description": "URLs to the HealthSource resources whose results are AND'ed.\nI.e. he aggregated result is is HEALTHY only if all sources\nare HEALTHY. Must have at least 1. Must not have more than 10.\nMust be regional and in the same region as theCompositeHealthCheck. Can be mutated.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "fingerprint": {
          "type": "string",
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a CompositeHealthCheck. An up-to-date fingerprint\nmust be provided in order to patch the CompositeHealthCheck; Otherwise,\nthe request will fail with error 412 conditionNotMet. To see\nthe latest fingerprint, make a get() request to retrieve the\nCompositeHealthCheck.",
          "format": "byte"
        },
        "healthDestination": {
          "type": "string",
          "description": "URL to the destination resource. Must be set. Must be aForwardingRule. The ForwardingRule must have\nload balancing scheme INTERNAL orINTERNAL_MANAGED and must be regional and in the same region\nas the CompositeHealthCheck (cross-region deployment forINTERNAL_MANAGED is not supported). Can be mutated."
        },
        "selfLinkWithId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL with id for the resource."
        },
        "name": {
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        }
      },
      "description": "Represents a composite health check.\n\nA composite health check resource specifies the health source resources and\nthe health destination resource to which the aggregated health result from\nthe health source resources is delivered.",
      "type": "object",
      "id": "CompositeHealthCheck"
    },
    "InterconnectAttachmentL2ForwardingGeneveHeader": {
      "description": "GeneveHeader related configurations.",
      "id": "InterconnectAttachmentL2ForwardingGeneveHeader",
      "type": "object",
      "properties": {
        "vni": {
          "type": "integer",
          "description": "Optional. VNI is a 24-bit unique virtual network identifier, from 0 to\n16,777,215.",
          "format": "uint32"
        }
      }
    },
    "BulkInsertDiskResource": {
      "properties": {
        "snapshotGroupParameters": {
          "description": "The parameters for the snapshot group. The usage of snapshot group feature\nis restricted.",
          "$ref": "SnapshotGroupParameters"
        },
        "instantSnapshotGroupParameters": {
          "description": "The parameters for the instant snapshot group.",
          "$ref": "InstantSnapshotGroupParameters"
        },
        "sourceConsistencyGroupPolicy": {
          "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to clone.\nThis may be a full or partial URL, such as:\n   \n   \n     - \n       https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy\n     \n     - \n       projects/project/regions/region/resourcePolicies/resourcePolicy\n     \n     - \n       regions/region/resourcePolicies/resourcePolicy",
          "type": "string"
        }
      },
      "type": "object",
      "description": "A transient resource used in compute.disks.bulkInsert and\ncompute.regionDisks.bulkInsert. It is only used to process\nrequests and is not persisted.",
      "id": "BulkInsertDiskResource"
    },
    "InstantSnapshotGroupResourceStatus": {
      "properties": {
        "consistencyMembershipResolutionTime": {
          "format": "google-datetime",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only]"
        },
        "sourceInfo": {
          "$ref": "InstantSnapshotGroupSourceInfo",
          "readOnly": true,
          "description": "Output only. [Output Only]"
        }
      },
      "id": "InstantSnapshotGroupResourceStatus",
      "type": "object"
    },
    "PathMatcher": {
      "type": "object",
      "id": "PathMatcher",
      "properties": {
        "pathRules": {
          "description": "The list of path rules. Use this list instead of routeRules\nwhen routing based on simple path matching is all that's required. A path\nrule can only include a wildcard character (*) after a\nforward slash character (\"/\").\n\nThe order by which path rules are specified does not matter.\nMatches are always done on the longest-path-first basis.\n\nFor example: a pathRule with a path /a/b/c/* will match\nbefore /a/b/* irrespective of the order in which those paths appear in this\nlist.\n\nWithin a given pathMatcher, only one ofpathRules or routeRules must be set.",
          "items": {
            "$ref": "PathRule"
          },
          "type": "array"
        },
        "defaultUrlRedirect": {
          "description": "When none of the specified pathRules orrouteRules match, the request is redirected to a URL specified\nby defaultUrlRedirect.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\nNot supported when the URL map is bound to a target gRPC proxy.",
          "$ref": "HttpRedirectAction"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "routeRules": {
          "description": "The list of HTTP route rules. Use this list instead ofpathRules when advanced route matching and routing actions are\ndesired. routeRules are evaluated in order of priority, from\nthe lowest to highest number.\n\nWithin a given pathMatcher, you can set only one ofpathRules or routeRules.",
          "type": "array",
          "items": {
            "$ref": "HttpRouteRule"
          }
        },
        "headerAction": {
          "description": "Specifies changes to request and response headers that need to take effect\nfor the selected backend service.\n\nHeaderAction specified here are applied after the matchingHttpRouteRule HeaderAction and before theHeaderAction in the UrlMap\n\nHeaderAction is not supported for load balancers\nthat have\ntheir loadBalancingScheme set to EXTERNAL.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true.",
          "$ref": "HttpHeaderAction"
        },
        "defaultRouteAction": {
          "$ref": "HttpRouteAction",
          "description": "defaultRouteAction takes effect when none of the \npathRules or routeRules match. The load balancer\nperforms advanced routing actions, such as URL rewrites and\nheader transformations, before forwarding the request to the\nselected backend.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\nURL maps for classic Application Load Balancers only support\nthe urlRewrite action within a path matcher'sdefaultRouteAction."
        },
        "defaultCustomErrorResponsePolicy": {
          "description": "defaultCustomErrorResponsePolicy specifies how the Load\nBalancer returns error responses when BackendServiceorBackendBucket responds with an error. \n\nThis policy takes\neffect at the PathMatcher level and applies only when no\npolicy has been defined for the error code at lower levels likeRouteRule and PathRule within thisPathMatcher. If an error code does not have a policy defined\nin defaultCustomErrorResponsePolicy, then a policy defined for\nthe error code in UrlMap.defaultCustomErrorResponsePolicy\ntakes effect. \n\nFor example, consider a UrlMap with the following\nconfiguration:\n   \n   \n     - UrlMap.defaultCustomErrorResponsePolicy is configured\n     with policies for 5xx and 4xx errors\n     - A RouteRule for /coming_soon/ is configured for the\n     error code 404.\n\nIf the request is for www.myotherdomain.com and a404 is encountered, the policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 response is encountered for the requestwww.example.com/current_events/, the pathMatcher's policy\ntakes effect. If however, the request forwww.example.com/coming_soon/ encounters a 404,\nthe policy in RouteRule.customErrorResponsePolicy takes\neffect. If any of the requests in this example encounter a 500\nerror code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes effect. \n\nWhen\nused in conjunction withpathMatcher.defaultRouteAction.retryPolicy, retries take\nprecedence. Only once all retries are exhausted, thedefaultCustomErrorResponsePolicy is applied. While attempting\na retry, if load balancer is successful in reaching the\nservice, the defaultCustomErrorResponsePolicy is ignored and\nthe response from the service is returned to the client.\n\ndefaultCustomErrorResponsePolicy is supported only for\nglobal external Application Load Balancers.",
          "$ref": "CustomErrorResponsePolicy"
        },
        "name": {
          "description": "The name to which this PathMatcher is referred by theHostRule.",
          "type": "string"
        },
        "defaultService": {
          "type": "string",
          "description": "The full or partial URL to the BackendService resource. This\nURL is used if none of the pathRules orrouteRules defined by this PathMatcher are\nmatched. For example, the\nfollowing are all valid URLs to a BackendService resource:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService\n     - compute/v1/projects/project/global/backendServices/backendService\n     - global/backendServices/backendService\n\n\nIf defaultRouteAction is also specified, advanced\nrouting actions, such as URL rewrites, take effect before sending the\nrequest to the backend.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\nAuthorization requires one or more of the following Google IAM permissions on the\nspecified resource default_service: \n   \n   \n      - compute.backendBuckets.use\n      - compute.backendServices.use"
        }
      },
      "description": "A matcher for the path portion of the URL. The BackendService\nfrom the longest-matched rule will serve the URL. If no rule was matched, the\ndefault service is used."
    },
    "DiskType": {
      "type": "object",
      "description": "Represents a Disk Type resource.\n\nGoogle Compute Engine has two Disk Type resources:\n\n* [Regional](/compute/docs/reference/rest/v1/regionDiskTypes)\n* [Zonal](/compute/docs/reference/rest/v1/diskTypes)\n\nYou can choose from a variety of disk types based on your needs.\nFor more information, readStorage options.\n\nThe diskTypes resource represents disk types for a zonal\npersistent disk.\nFor more information, readZonal persistent disks.\n\nThe regionDiskTypes resource represents disk types for a\nregional persistent disk. For more information, read Regional persistent disks.",
      "id": "DiskType",
      "properties": {
        "kind": {
          "default": "compute#diskType",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Always compute#diskType\nfor disk types.",
          "type": "string"
        },
        "region": {
          "description": "[Output Only] URL of the region where the disk type resides. Only\napplicable for regional resources.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "type": "string"
        },
        "defaultDiskSizeGb": {
          "description": "[Output Only] Server-defined default disk size in GB.",
          "format": "int64",
          "type": "string"
        },
        "zone": {
          "description": "[Output Only] URL of the zone where the disk type resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "[Output Only] Name of the resource."
        },
        "description": {
          "type": "string",
          "description": "[Output Only] An optional description of this resource."
        },
        "creationTimestamp": {
          "description": "[Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "deprecated": {
          "$ref": "DeprecationStatus",
          "description": "[Output Only] The deprecation status associated with this disk type."
        },
        "validDiskSize": {
          "description": "[Output Only] An optional textual description of the valid disk size,\nsuch as \"10GB-10TB\".",
          "type": "string"
        }
      }
    },
    "CalendarModeAdviceResponse": {
      "type": "object",
      "description": "A response containing the recommended way of creating the specified resources\nin the future. It contains (will contain) multiple recommendations that can\nbe analyzed by the customer and the best one can be picked.",
      "id": "CalendarModeAdviceResponse",
      "properties": {
        "recommendations": {
          "type": "array",
          "items": {
            "$ref": "CalendarModeRecommendation"
          },
          "description": "Recommendations where, how and when to create the requested resources\nin order to maximize their obtainability and minimize cost."
        }
      }
    },
    "InterconnectApplicationAwareInterconnectStrictPriorityPolicy": {
      "id": "InterconnectApplicationAwareInterconnectStrictPriorityPolicy",
      "properties": {},
      "type": "object",
      "description": "Specify configuration for StrictPriorityPolicy."
    },
    "NetworkEndpoint": {
      "id": "NetworkEndpoint",
      "properties": {
        "ipv6Address": {
          "description": "Optional IPv6 address of network endpoint.",
          "type": "string"
        },
        "port": {
          "format": "int32",
          "description": "Optional port number of network endpoint. If not specified, the\ndefaultPort for the network endpoint group will be used.\n\nThis field can not be set for network endpoints of typeGCE_VM_IP.",
          "type": "integer"
        },
        "fqdn": {
          "description": "Optional fully qualified domain name of network endpoint. This can only be\nspecified when NetworkEndpointGroup.network_endpoint_type isNON_GCP_FQDN_PORT.",
          "type": "string"
        },
        "annotations": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional metadata defined as annotations on the network endpoint.",
          "type": "object"
        },
        "ipAddress": {
          "type": "string",
          "description": "Optional IPv4 address of network endpoint. The IP address must belong to a\nVM in Compute Engine (either the primary IP or as part of an aliased IP\nrange). If the IP address is not specified, then the primary IP address for\nthe VM instance in the network that the network endpoint group belongs to\nwill be used.\n\nThis field is redundant and need not be set for network endpoints of typeGCE_VM_IP. If set, it must be set to the primary internal IP\naddress of the attached VM instance that matches the subnetwork of the NEG.\nThe primary internal IP address from any NIC of a multi-NIC VM instance can\nbe added to a NEG as long as it matches the NEG subnetwork."
        },
        "clientDestinationPort": {
          "description": "Represents the port number to which PSC consumer sends packets.\n\nOptional. Only valid for network endpoint groups created withGCE_VM_IP_PORTMAP endpoint type.",
          "type": "integer",
          "format": "int32"
        },
        "instance": {
          "type": "string",
          "description": "The name or a URL of VM instance of this network endpoint.\nOptional, the field presence depends on the network endpoint type. The\nfield is required for network endpoints of type GCE_VM_IP andGCE_VM_IP_PORT.\n\nThe instance must be in the same zone of network endpoint group (for zonal\nNEGs) or in the zone within the region of the NEG (for regional NEGs).\nIf the ipAddress is specified, it must belongs to the VM\ninstance.\n\nThe name must be 1-63 characters long, and comply withRFC1035\nor be a valid URL pointing to an existing instance."
        }
      },
      "type": "object",
      "description": "The network endpoint."
    },
    "DiskAggregatedList": {
      "properties": {
        "warning": {
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "items": {
          "type": "object",
          "description": "A list of DisksScopedList resources.",
          "additionalProperties": {
            "$ref": "DisksScopedList",
            "description": "[Output Only] Name of the scope containing this set of disks."
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#diskAggregatedList",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#diskAggregatedList for aggregated lists of persistent\ndisks."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "DiskAggregatedList",
      "type": "object"
    },
    "InstanceGroupManagerStatusBulkInstanceOperation": {
      "id": "InstanceGroupManagerStatusBulkInstanceOperation",
      "type": "object",
      "properties": {
        "lastProgressCheck": {
          "$ref": "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck",
          "readOnly": true,
          "description": "Output only. Information from the last progress check of bulk instance\noperation."
        },
        "inProgress": {
          "description": "Output only. Informs whether bulk instance operation is in progress.",
          "type": "boolean",
          "readOnly": true
        }
      },
      "description": "Bulk instance operation is the creation of VMs in a MIG when the\ntargetSizePolicy.mode is set to BULK."
    },
    "CapacityAdviceResponseRecommendationShard": {
      "id": "CapacityAdviceResponseRecommendationShard",
      "description": "Shards represent blocks of uniform capacity in recommendations.\nEach shard is for a single zone and a single machine shape. Each shard\ndefines a size expressed as the number of VMs.",
      "properties": {
        "machineType": {
          "description": "The machine type corresponds to the instance selection in the request.",
          "type": "string"
        },
        "instanceCount": {
          "format": "int32",
          "type": "integer",
          "description": "The number of instances."
        },
        "provisioningModel": {
          "enumDescriptions": [
            "Instance is provisioned using the Flex Start provisioning model and\nhas a limited runtime.",
            "Bound to the lifecycle of the reservation in which it is provisioned.",
            "Heavily discounted, no guaranteed runtime.",
            "Standard provisioning with user controlled runtime, no discounts."
          ],
          "description": "The provisioning model that you want to view recommendations for.",
          "enum": [
            "FLEX_START",
            "RESERVATION_BOUND",
            "SPOT",
            "STANDARD"
          ],
          "type": "string"
        },
        "zone": {
          "readOnly": true,
          "description": "Output only. The zone name for this shard.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "InterconnectAttachmentPrivateInfo": {
      "id": "InterconnectAttachmentPrivateInfo",
      "description": "Information for an interconnect attachment when this belongs to an\ninterconnect of type DEDICATED.",
      "properties": {
        "tag8021q": {
          "description": "[Output Only] 802.1q encapsulation tag to be used for traffic between\nGoogle and the customer, going to and from this network and region.",
          "type": "integer",
          "format": "uint32"
        }
      },
      "type": "object"
    },
    "PacketMirroringMirroredResourceInfoInstanceInfo": {
      "id": "PacketMirroringMirroredResourceInfoInstanceInfo",
      "properties": {
        "url": {
          "type": "string",
          "description": "Resource URL to the virtual machine instance which is being mirrored."
        },
        "canonicalUrl": {
          "readOnly": true,
          "description": "Output only. [Output Only] Unique identifier for the instance; defined by the\nserver.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RoutersListBgpRoutes": {
      "type": "object",
      "id": "RoutersListBgpRoutes",
      "properties": {
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "etag": {
          "type": "string"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#routersListBgpRoutes for lists of bgp routes.",
          "default": "compute#routersListBgpRoutes",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "result": {
          "description": "[Output Only] A list of bgp routes.",
          "type": "array",
          "items": {
            "$ref": "BgpRoute"
          }
        }
      }
    },
    "VmExtensionPolicy": {
      "id": "VmExtensionPolicy",
      "type": "object",
      "description": "Represents a VM extension policy.",
      "properties": {
        "priority": {
          "type": "integer",
          "description": "Optional. Priority of this policy. Used to resolve conflicts when multiple policies\napply to the same extension.\nThe policy priority is an integer from 0 to 65535, inclusive. Lower\nintegers indicate higher priorities. If you do not specify a priority when\ncreating a rule, it is assigned a priority of 1000. If priorities are\nequal, the policy with the most recent creation timestamp takes precedence.",
          "format": "int32"
        },
        "updateTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Update timestamp inRFC3339\ntext format."
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "instanceSelectors": {
          "type": "array",
          "items": {
            "$ref": "VmExtensionPolicyInstanceSelector"
          },
          "description": "Optional. Selectors to target VMs for this policy. VMs are selected if they match\n*any* of the provided selectors (logical OR). If this list is empty, the\npolicy applies to all VMs."
        },
        "state": {
          "readOnly": true,
          "enumDescriptions": [
            "The policy is active and applied to matching VMs.\nNewly created VMs that match the policy will also receive the\nextension policy.",
            "The policy is in the process of being deleted. After the extension is\nremoved from all matching VMs, the policy will be deleted.",
            "Default value. Do not use."
          ],
          "enum": [
            "ACTIVE",
            "DELETING",
            "STATE_UNSPECIFIED"
          ],
          "type": "string",
          "description": "Optional. Output only. [Output Only] Current state of the policy: ACTIVE or DELETING."
        },
        "kind": {
          "type": "string",
          "default": "compute#vmExtensionPolicy",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#vmExtensionPolicy."
        },
        "managedByGlobal": {
          "readOnly": true,
          "type": "boolean",
          "description": "Optional. Output only. [Output Only] Indicates if this policy is managed by a global policy."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "annotations": {
            "required": [
              "compute.zoneVmExtensionPolicies.insert"
            ]
          },
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "globalResourceLink": {
          "type": "string",
          "readOnly": true,
          "description": "Optional. Output only. [Output Only] Link to the global policy that manages this zone policy, if\napplicable."
        },
        "extensionPolicies": {
          "description": "Required. A map of extension names (for example, \"ops-agent\") to their corresponding\npolicy configurations.",
          "additionalProperties": {
            "$ref": "VmExtensionPolicyExtensionPolicy"
          },
          "type": "object"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "selfLinkWithId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource's resource id."
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource."
        }
      }
    },
    "ResourcePolicyWeeklyCycleDayOfWeek": {
      "properties": {
        "duration": {
          "description": "Output only. [Output only] Duration of the time window, automatically chosen to be\nsmallest possible in the given scenario.",
          "readOnly": true,
          "type": "string"
        },
        "day": {
          "description": "Defines a schedule that runs on specific days of the week. Specify\none or more days. The following options are available:\nMONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.",
          "enum": [
            "FRIDAY",
            "INVALID",
            "MONDAY",
            "SATURDAY",
            "SUNDAY",
            "THURSDAY",
            "TUESDAY",
            "WEDNESDAY"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "startTime": {
          "type": "string",
          "description": "Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT."
        }
      },
      "id": "ResourcePolicyWeeklyCycleDayOfWeek",
      "type": "object"
    },
    "InstanceGroupManagerInstanceLifecyclePolicyOnRepair": {
      "id": "InstanceGroupManagerInstanceLifecyclePolicyOnRepair",
      "properties": {
        "allowChangingZone": {
          "type": "string",
          "description": "Specifies whether the MIG can change a VM's zone during a repair.\nValid values are:\n   \n   - NO (default): MIG cannot change a VM's zone during a\n   repair.\n   - YES: MIG can select a different zone for the VM during\n   a repair.",
          "enumDescriptions": [
            "[Default] MIG cannot change a VM's zone during a repair.",
            "MIG can select a different zone for the VM during a repair."
          ],
          "enum": [
            "NO",
            "YES"
          ]
        }
      },
      "type": "object",
      "description": "Configuration for VM repairs in the MIG."
    },
    "UrlMapsScopedList": {
      "id": "UrlMapsScopedList",
      "properties": {
        "urlMaps": {
          "description": "A list of UrlMaps contained in this scope.",
          "type": "array",
          "items": {
            "$ref": "UrlMap"
          }
        },
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "type": "object",
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty."
        }
      },
      "type": "object"
    },
    "TargetInstanceList": {
      "description": "Contains a list of TargetInstance resources.",
      "type": "object",
      "id": "TargetInstanceList",
      "properties": {
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "items": {
          "items": {
            "$ref": "TargetInstance"
          },
          "description": "A list of TargetInstance resources.",
          "type": "array"
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          }
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. Type of resource.",
          "default": "compute#targetInstanceList",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      }
    },
    "VmExtensionPoliciesScopedList": {
      "properties": {
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty."
        },
        "vmExtensionPolicies": {
          "type": "array",
          "items": {
            "$ref": "VmExtensionPolicy"
          },
          "description": "List of VmExtensionPolicy resources contained in this scope."
        }
      },
      "id": "VmExtensionPoliciesScopedList",
      "type": "object"
    },
    "UsageExportLocation": {
      "description": "The location in Cloud Storage and naming method of the daily usage\nreport. Contains bucket_name and report_name prefix.",
      "properties": {
        "reportNamePrefix": {
          "description": "An optional prefix for the name of the usage report object stored inbucketName. If not supplied, defaults tousage_gce. The report is stored as a CSV file namedreport_name_prefix_gce_YYYYMMDD.csv whereYYYYMMDD is the day of the usage according to Pacific Time.\nIf you supply a prefix, it should conform to Cloud Storageobject naming\nconventions.",
          "type": "string"
        },
        "bucketName": {
          "description": "The name of an existing bucket in Cloud Storage where the usage report\nobject is stored. The Google Service Account is granted write access to\nthis bucket. This can either be the bucket name by itself, such asexample-bucket, or the bucket name with gs://\nor https://storage.googleapis.com/ in front of it, such\nas gs://example-bucket.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "UsageExportLocation"
    },
    "CapacityAdviceResponseRecommendation": {
      "type": "object",
      "properties": {
        "scores": {
          "$ref": "CapacityAdviceResponseRecommendationScores",
          "description": "Scores for the recommendation."
        },
        "shards": {
          "type": "array",
          "description": "Shards represent blocks of uniform capacity in recommendations.",
          "items": {
            "$ref": "CapacityAdviceResponseRecommendationShard"
          }
        }
      },
      "description": "Recommendation.",
      "id": "CapacityAdviceResponseRecommendation"
    },
    "DistributionPolicy": {
      "properties": {
        "targetShape": {
          "enumDescriptions": [
            "The group picks zones for creating VM instances to fulfill the requested\nnumber of VMs within present resource constraints and to maximize\nutilization of unused zonal reservations. Recommended for batch workloads\nthat do not require high availability.",
            "The group creates all VM instances within a single zone. The zone is\nselected based on the present resource constraints and to maximize\nutilization of unused zonal reservations.\nRecommended for batch workloads with heavy interprocess communication.",
            "The group prioritizes acquisition of resources, scheduling VMs in zones\nwhere resources are available while distributing VMs as evenly as\npossible across selected zones to minimize the impact of zonal failure.\nRecommended for highly available serving workloads.",
            "The group schedules VM instance creation and deletion to achieve and\nmaintain an even number of managed instances across the selected zones.\nThe distribution is even when the number of managed instances does not\ndiffer by more than 1 between any two zones. Recommended for highly\navailable serving workloads."
          ],
          "type": "string",
          "description": "The distribution shape to which the group converges either proactively or\non resize events (depending on the value set inupdatePolicy.instanceRedistributionType).",
          "enum": [
            "ANY",
            "ANY_SINGLE_ZONE",
            "BALANCED",
            "EVEN"
          ]
        },
        "zones": {
          "type": "array",
          "description": "Zones where the regional managed instance group will create and manage\nits instances.\nBy default, a regional MIG doesn't automatically select an AI zone to create\ninstances, even if an AI zone is available in the specified region. To\ncreate instances in an AI zone in the selected region, you must explicitly\nspecify it in the distribution policy together with the other preferred\nzones.",
          "items": {
            "$ref": "DistributionPolicyZoneConfiguration"
          }
        }
      },
      "type": "object",
      "id": "DistributionPolicy"
    },
    "InterconnectsGetDiagnosticsResponse": {
      "description": "Response for the InterconnectsGetDiagnosticsRequest.",
      "properties": {
        "result": {
          "$ref": "InterconnectDiagnostics"
        }
      },
      "id": "InterconnectsGetDiagnosticsResponse",
      "type": "object"
    },
    "CachePolicyNegativeCachingPolicy": {
      "id": "CachePolicyNegativeCachingPolicy",
      "properties": {
        "code": {
          "description": "The HTTP status code to define a TTL against. Only HTTP status codes\n300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be\nspecified as values, and you cannot specify a status code more than\nonce.",
          "format": "int32",
          "type": "integer"
        },
        "ttl": {
          "description": "The TTL (in seconds) for which to cache responses with the\ncorresponding status code.\nThe maximum allowed value is 1800s (30 minutes). Infrequently accessed\nobjects may be evicted from the cache before the defined TTL.",
          "$ref": "Duration"
        }
      },
      "description": "Specify CDN TTLs for response error codes.",
      "type": "object"
    },
    "RegionInstanceGroupManagerPatchInstanceConfigReq": {
      "description": "RegionInstanceGroupManagers.patchPerInstanceConfigs",
      "type": "object",
      "id": "RegionInstanceGroupManagerPatchInstanceConfigReq",
      "properties": {
        "perInstanceConfigs": {
          "type": "array",
          "items": {
            "$ref": "PerInstanceConfig"
          },
          "description": "The list of per-instance configurations to insert or patch on this managed\ninstance group."
        }
      }
    },
    "GlobalVmExtensionPolicyRolloutOperationRolloutStatus": {
      "id": "GlobalVmExtensionPolicyRolloutOperationRolloutStatus",
      "type": "object",
      "properties": {
        "previousRollout": {
          "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata",
          "description": "Output only. [Output Only] The last completed rollout resource. This field will not\nbe populated until the first rollout is completed.",
          "readOnly": true
        },
        "currentRollouts": {
          "readOnly": true,
          "description": "Output only. [Output Only] The current rollouts for the latest version of the\nresource. There should be only one current rollout, but for\nscalability, we make it repeated.",
          "type": "array",
          "items": {
            "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata"
          }
        }
      }
    },
    "Autoscaler": {
      "id": "Autoscaler",
      "description": "Represents an Autoscaler resource.\n\nGoogle Compute Engine has two Autoscaler resources:\n\n* [Zonal](/compute/docs/reference/rest/v1/autoscalers)\n* [Regional](/compute/docs/reference/rest/v1/regionAutoscalers)\n\nUse autoscalers to automatically add or delete instances from a\nmanaged instance group according to your defined autoscaling policy.\nFor more information, read Autoscaling Groups of Instances.\n\nFor zonal managed instance groups resource, use the autoscaler\nresource.\n\nFor regional managed instance groups, use theregionAutoscalers resource.",
      "properties": {
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Always compute#autoscaler\nfor autoscalers.",
          "readOnly": true,
          "default": "compute#autoscaler",
          "type": "string"
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "enum": [
            "ACTIVE",
            "DELETING",
            "ERROR",
            "PENDING"
          ],
          "enumDescriptions": [
            "Configuration is acknowledged to be effective",
            "Configuration is being deleted",
            "Configuration has errors. Actionable for users.",
            "Autoscaler backend hasn't read new/updated configuration"
          ],
          "description": "[Output Only] The status of the autoscaler configuration. Current set of\npossible values:\n   \n   - PENDING:\n     Autoscaler backend hasn't read new/updated configuration.\n   - DELETING:\n     Configuration is being deleted.\n   - ACTIVE:\n     Configuration is acknowledged to be effective. Some warnings might\n     be present in the statusDetails field.\n   - ERROR:\n     Configuration has errors. Actionable for users. Details are present in\n     the statusDetails field.\n\n\nNew values might be added in the future.",
          "type": "string"
        },
        "scalingScheduleStatus": {
          "type": "object",
          "description": "Output only. [Output Only] Status information of existing scaling schedules.",
          "additionalProperties": {
            "$ref": "ScalingScheduleStatus"
          },
          "readOnly": true
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "zone": {
          "description": "Output only. [Output Only] URL of thezone\nwhere the instance group resides (for autoscalers living in zonal scope).",
          "type": "string",
          "readOnly": true
        },
        "region": {
          "readOnly": true,
          "description": "Output only. [Output Only] URL of theregion\nwhere the instance group resides (for autoscalers living in regional\nscope).",
          "type": "string"
        },
        "recommendedSize": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. [Output Only] Target recommended MIG size (number of instances) computed by\nautoscaler. Autoscaler calculates the recommended MIG size even when the\nautoscaling policy mode is different from ON. This field is empty when\nautoscaler is not connected to an existing managed instance group or\nautoscaler did not generate its prediction."
        },
        "target": {
          "description": "URL of the managed instance group that this autoscaler will scale. This\nfield is required when creating an autoscaler.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "autoscalingPolicy": {
          "description": "The configuration parameters for the autoscaling algorithm. You can define\none or more signals for an autoscaler: cpuUtilization,customMetricUtilizations, andloadBalancingUtilization.\n\nIf none of these are specified, the default will be to autoscale based oncpuUtilization to 0.6 or 60%.",
          "$ref": "AutoscalingPolicy"
        },
        "statusDetails": {
          "items": {
            "$ref": "AutoscalerStatusDetails"
          },
          "description": "[Output Only] Human-readable details about the current state of the\nautoscaler. Read the documentation forCommonly\nreturned status messages for examples of status messages you might\nencounter.",
          "type": "array"
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "annotations": {
            "required": [
              "compute.autoscalers.insert"
            ]
          }
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "format": "uint64",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "ReservationAffinity": {
      "id": "ReservationAffinity",
      "properties": {
        "values": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Corresponds to the label values of a reservation resource. This can be\neither a name to a reservation in the same project or\n\"projects/different-project/reservations/some-reservation-name\" to target a\nshared reservation in the same zone but in a different project."
        },
        "consumeReservationType": {
          "enum": [
            "ANY_RESERVATION",
            "NO_RESERVATION",
            "SPECIFIC_RESERVATION",
            "UNSPECIFIED"
          ],
          "enumDescriptions": [
            "Consume any allocation available.",
            "Do not consume from any allocated capacity.",
            "Must consume from a specific reservation. Must specify key value fields\nfor specifying the reservations.",
            ""
          ],
          "type": "string",
          "description": "Specifies the type of reservation from which this instance can consume\nresources: ANY_RESERVATION (default),SPECIFIC_RESERVATION, or NO_RESERVATION. See\nConsuming reserved instances for examples."
        },
        "key": {
          "type": "string",
          "description": "Corresponds to the label key of a reservation resource. To target aSPECIFIC_RESERVATION by name, specifygoogleapis.com/reservation-name as the key and specify\nthe name of your reservation as its value."
        }
      },
      "type": "object",
      "description": "Specifies the reservations that this instance can consume from."
    },
    "ReservationBlockPhysicalTopology": {
      "properties": {
        "cluster": {
          "description": "The cluster name of the reservation block.",
          "type": "string"
        },
        "block": {
          "type": "string",
          "description": "The hash of the capacity block within the cluster."
        },
        "instances": {
          "items": {
            "$ref": "ReservationBlockPhysicalTopologyInstance"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. The detailed instances information for a given Block"
        }
      },
      "id": "ReservationBlockPhysicalTopology",
      "type": "object"
    },
    "TimeZone": {
      "id": "TimeZone",
      "properties": {
        "id": {
          "type": "string",
          "description": "IANA Time Zone Database time zone. For example \"America/New_York\"."
        },
        "version": {
          "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
          "type": "string"
        }
      },
      "description": "Represents a time zone from the\n[IANA Time Zone Database](https://www.iana.org/time-zones).",
      "type": "object"
    },
    "FutureReservationsListResponse": {
      "id": "FutureReservationsListResponse",
      "type": "object",
      "properties": {
        "etag": {
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "FutureReservation"
          },
          "type": "array",
          "description": "[Output Only] A list of future reservation resources."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            }
          },
          "type": "object"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource.Alwayscompute#FutureReservationsListResponse for lists of\nreservations",
          "readOnly": true,
          "default": "compute#futureReservationsListResponse",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        }
      }
    },
    "CapacityAdviceResponse": {
      "type": "object",
      "properties": {
        "recommendations": {
          "description": "Initially the API will provide one recommendation which balances the\nindividual scores according to the service provider's preference.",
          "items": {
            "$ref": "CapacityAdviceResponseRecommendation"
          },
          "type": "array"
        }
      },
      "id": "CapacityAdviceResponse",
      "description": "A response contains scoring recommendations."
    },
    "AcceleratorTypeAggregatedList": {
      "type": "object",
      "properties": {
        "kind": {
          "default": "compute#acceleratorTypeAggregatedList",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#acceleratorTypeAggregatedList for aggregated lists of\naccelerator types.",
          "type": "string",
          "readOnly": true
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "items": {
          "description": "A list of AcceleratorTypesScopedList resources.",
          "type": "object",
          "additionalProperties": {
            "$ref": "AcceleratorTypesScopedList",
            "description": "[Output Only] Name of the scope containing this set of accelerator types."
          }
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "readOnly": true
        }
      },
      "id": "AcceleratorTypeAggregatedList"
    },
    "FirewallPolicyList": {
      "type": "object",
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#firewallPolicyList for listsof FirewallPolicies",
          "default": "compute#firewallPolicyList",
          "type": "string"
        },
        "items": {
          "description": "A list of FirewallPolicy resources.",
          "items": {
            "$ref": "FirewallPolicy"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        }
      },
      "id": "FirewallPolicyList"
    },
    "TargetTcpProxy": {
      "properties": {
        "proxyHeader": {
          "enum": [
            "NONE",
            "PROXY_V1"
          ],
          "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.",
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "kind": {
          "default": "compute#targetTcpProxy",
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetTcpProxy for target TCP proxies.",
          "readOnly": true
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the regional TCP proxy resides.\nThis field is not applicable to global TCP proxy."
        },
        "proxyBind": {
          "description": "This field only applies when the forwarding rule that references this\ntarget proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED.\n\nWhen this field is set to true, Envoy proxies set up inbound\ntraffic interception and bind to the IP address and port specified in the\nforwarding rule. This is generally useful when using Traffic Director to\nconfigure Envoy as a gateway or middle proxy (in other words, not a\nsidecar proxy). The Envoy proxy listens for inbound requests and handles\nrequests when it receives them.\n\nThe default is false.",
          "type": "boolean"
        },
        "loadBalancingScheme": {
          "type": "string",
          "description": "Specifies the type of load balancing scheme used by this target proxy.",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "EXTERNAL",
            "EXTERNAL_MANAGED",
            "INTERNAL_MANAGED",
            "LOAD_BALANCING_SCHEME_UNSPECIFIED"
          ]
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "name": {
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "service": {
          "type": "string",
          "description": "URL to the BackendService resource."
        }
      },
      "id": "TargetTcpProxy",
      "description": "Represents a Target TCP Proxy resource.\n\nA target TCP proxy is a component of a Proxy Network Load Balancer.\nThe forwarding rule references the target TCP proxy, and the target proxy\nthen references a backend service. For more information, readProxy Network\nLoad Balancer overview.",
      "type": "object"
    },
    "NetworkProfileNetworkFeatures": {
      "properties": {
        "allowMultiNicInSameSubnetwork": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether multi-nic in the same subnetwork is allowed.",
          "enum": [
            "MULTI_NIC_IN_SAME_SUBNETWORK_ALLOWED",
            "MULTI_NIC_IN_SAME_SUBNETWORK_BLOCKED"
          ]
        },
        "subnetPurposes": {
          "items": {
            "enum": [
              "SUBNET_PURPOSE_CUSTOM_HARDWARE",
              "SUBNET_PURPOSE_PRIVATE"
            ],
            "enumDescriptions": [
              "",
              ""
            ],
            "type": "string"
          },
          "type": "array",
          "description": "Specifies which subnetwork purposes are supported."
        },
        "addressPurposes": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "DNS_RESOLVER",
              "GCE_ENDPOINT",
              "IPSEC_INTERCONNECT",
              "NAT_AUTO",
              "PRIVATE_SERVICE_CONNECT",
              "SERVERLESS",
              "SHARED_LOADBALANCER_VIP",
              "VPC_PEERING"
            ],
            "enumDescriptions": [
              "DNS resolver address in the subnetwork.",
              "VM internal/alias IP, Internal LB service IP, etc.",
              "A regional internal IP address range reserved for the VLAN attachment\nthat is used in HA VPN over Cloud Interconnect. This regional\ninternal IP address range must not overlap with any IP address range\nof subnet/route in the VPC network and its peering networks. After the\nVLAN attachment is created with the reserved IP address range, when\ncreating a new VPN gateway, its interface IP address is allocated\nfrom the associated VLAN attachment's IP address range.",
              "External IP automatically reserved for Cloud NAT.",
              "A private network IP address that can be used to configure Private\nService Connect. This purpose can be specified only forGLOBAL addresses of Type INTERNAL",
              "A regional internal IP address range reserved for Serverless.",
              "A private network IP address that can be shared by multiple Internal\nLoad Balancer forwarding rules.",
              "IP range for peer networks."
            ]
          },
          "description": "Specifies what address purposes are supported. If empty, all address\npurposes are supported."
        },
        "allowLoadBalancing": {
          "enum": [
            "LOAD_BALANCING_ALLOWED",
            "LOAD_BALANCING_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "description": "Specifies whether cloud load balancing is allowed."
        },
        "allowCloudNat": {
          "description": "Specifies whether cloud NAT creation is allowed.",
          "type": "string",
          "enum": [
            "CLOUD_NAT_ALLOWED",
            "CLOUD_NAT_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "interfaceTypes": {
          "description": "If set, limits the interface types that the network supports. If\nempty, all interface types are supported.",
          "items": {
            "enumDescriptions": [
              "GVNIC",
              "IDPF",
              "IRDMA",
              "MRDMA",
              "No type specified.",
              "VIRTIO"
            ],
            "enum": [
              "GVNIC",
              "IDPF",
              "IRDMA",
              "MRDMA",
              "UNSPECIFIED_NIC_TYPE",
              "VIRTIO_NET"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "multicast": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies which type of multicast is supported.",
          "enum": [
            "MULTICAST_SDN",
            "MULTICAST_ULL"
          ]
        },
        "unicast": {
          "type": "string",
          "description": "Specifies which type of unicast is supported.",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "UNICAST_SDN",
            "UNICAST_ULL"
          ]
        },
        "subnetworkStackTypes": {
          "description": "Output only. Specifies which subnetwork stack types are supported.",
          "readOnly": true,
          "items": {
            "enumDescriptions": [
              "New VMs in this subnet can have both IPv4 and IPv6 addresses.",
              "New VMs in this subnet will only be assigned IPv4 addresses.",
              "New VMs in this subnet will only  be assigned IPv6 addresses."
            ],
            "type": "string",
            "enum": [
              "IPV4_IPV6",
              "IPV4_ONLY",
              "IPV6_ONLY"
            ]
          },
          "type": "array"
        },
        "allowVpcFirewallRules": {
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "VPC_FIREWALL_RULES_ALLOWED",
            "VPC_FIREWALL_RULES_BLOCKED"
          ],
          "description": "Specifies whether VPC firewall rules can be created under the network.",
          "type": "string"
        },
        "allowVpcPeering": {
          "description": "Specifies whether VPC peering is allowed.",
          "type": "string",
          "enum": [
            "VPC_PEERING_ALLOWED",
            "VPC_PEERING_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "allowDefaultNicAttachment": {
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether default NIC attachment is allowed.",
          "enum": [
            "DEFAULT_NIC_ATTACHMENT_ALLOWED",
            "DEFAULT_NIC_ATTACHMENT_BLOCKED"
          ],
          "type": "string"
        },
        "allowPsc": {
          "enum": [
            "PSC_ALLOWED",
            "PSC_BLOCKED"
          ],
          "description": "Specifies whether PSC creation is allowed.",
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "allowAliasIpRanges": {
          "enum": [
            "ALIAS_IP_RANGES_ALLOWED",
            "ALIAS_IP_RANGES_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether alias IP ranges (and secondary address ranges) are\nallowed.",
          "type": "string"
        },
        "allowVpn": {
          "description": "Specifies whether VPN creation is allowed.",
          "enum": [
            "VPN_ALLOWED",
            "VPN_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        },
        "allowCloudRouter": {
          "description": "Specifies whether cloud router creation is allowed.",
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "CLOUD_ROUTER_ALLOWED",
            "CLOUD_ROUTER_BLOCKED"
          ]
        },
        "predefinedSubnetworkRanges": {
          "description": "Predefined subnetwork ranges for the network.",
          "items": {
            "$ref": "NetworkProfileNetworkFeaturesPredefinedSubnetworkRange"
          },
          "type": "array"
        },
        "allowInterconnect": {
          "type": "string",
          "description": "Specifies whether Cloud Interconnect creation is allowed.",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "INTERCONNECT_ALLOWED",
            "INTERCONNECT_BLOCKED"
          ]
        },
        "allowSameNetworkUnicast": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "SAME_NETWORK_UNICAST_ALLOWED",
            "SAME_NETWORK_UNICAST_BLOCKED"
          ],
          "description": "Specifies whether unicast within the same network is allowed."
        },
        "allowSubInterfaces": {
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "description": "Specifies whether sub interfaces are allowed.",
          "enum": [
            "SUBINTERFACES_ALLOWED",
            "SUBINTERFACES_BLOCKED"
          ]
        },
        "allowNetworkMigration": {
          "enum": [
            "NETWORK_MIGRATION_ALLOWED",
            "NETWORK_MIGRATION_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether VM network migration is allowed.",
          "type": "string"
        },
        "allowMulticast": {
          "description": "Specifies whether multicast is allowed.",
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "enum": [
            "MULTICAST_ALLOWED",
            "MULTICAST_BLOCKED"
          ]
        },
        "allowSubnetworkCreation": {
          "enum": [
            "SUBNETWORK_CREATION_ALLOWED",
            "SUBNETWORK_CREATION_BLOCKED"
          ],
          "description": "Specifies whether subnetwork creation is allowed.",
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        },
        "subnetStackTypes": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "",
              "",
              ""
            ],
            "enum": [
              "SUBNET_STACK_TYPE_IPV4_IPV6",
              "SUBNET_STACK_TYPE_IPV4_ONLY",
              "SUBNET_STACK_TYPE_IPV6_ONLY"
            ],
            "type": "string"
          },
          "description": "Specifies which subnetwork stack types are supported."
        },
        "predefinedNetworkInternalIpv6Range": {
          "description": "Specifies a predefined internal IPv6 range for the network.",
          "type": "string"
        },
        "allowClassDFirewalls": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether firewalls for Class D address ranges are supported.",
          "enum": [
            "CLASS_D_FIREWALLS_ALLOWED",
            "CLASS_D_FIREWALLS_BLOCKED"
          ]
        },
        "allowNcc": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether NCC is allowed.",
          "enum": [
            "NCC_ALLOWED",
            "NCC_BLOCKED"
          ]
        },
        "allowExternalIpAccess": {
          "enum": [
            "EXTERNAL_IP_ACCESS_ALLOWED",
            "EXTERNAL_IP_ACCESS_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether VMs are allowed to have external IP access on network\ninterfaces connected to this VPC.",
          "type": "string"
        },
        "allowFirewallPolicy": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether firewall policy can be attached to the network.",
          "enum": [
            "FIREWALL_POLICY_ALLOWED",
            "FIREWALL_POLICY_BLOCKED"
          ]
        },
        "subnetworkPurposes": {
          "items": {
            "enumDescriptions": [
              "Subnet reserved for Global Envoy-based Load Balancing.",
              "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy\npurpose, please use REGIONAL_MANAGED_PROXY instead.",
              "Subnetwork will be used for Migration from one peered VPC to another.\n(a transient state of subnetwork\nwhile migrating resources from one project to another).",
              "Regular user created or automatically created subnet.",
              "Subnetwork used as source range for Private NAT Gateways.",
              "Regular user created or automatically created subnet.",
              "Subnetworks created for Private Service Connect in the producer network.",
              "Subnetwork used for Regional Envoy-based Load Balancing."
            ],
            "enum": [
              "GLOBAL_MANAGED_PROXY",
              "INTERNAL_HTTPS_LOAD_BALANCER",
              "PEER_MIGRATION",
              "PRIVATE",
              "PRIVATE_NAT",
              "PRIVATE_RFC_1918",
              "PRIVATE_SERVICE_CONNECT",
              "REGIONAL_MANAGED_PROXY"
            ],
            "type": "string"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. Specifies which subnetwork purposes are supported."
        },
        "allowMultiNicInSameNetwork": {
          "enum": [
            "MULTI_NIC_IN_SAME_NETWORK_ALLOWED",
            "MULTI_NIC_IN_SAME_NETWORK_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether multi-nic in the same network is allowed.",
          "type": "string"
        },
        "allowPacketMirroring": {
          "enum": [
            "PACKET_MIRRORING_ALLOWED",
            "PACKET_MIRRORING_BLOCKED"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether Packet Mirroring 1.0 is supported."
        },
        "allowAddressCreation": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether address creation is allowed.",
          "enum": [
            "ADDRESS_CREATION_ALLOWED",
            "ADDRESS_CREATION_BLOCKED"
          ]
        },
        "allowIpForwarding": {
          "description": "Specifies whether IP forwarding is allowed.",
          "enum": [
            "IP_FORWARDING_ALLOWED",
            "IP_FORWARDING_BLOCKED"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "allowAutoModeSubnet": {
          "type": "string",
          "enum": [
            "AUTO_MODE_SUBNET_ALLOWED",
            "AUTO_MODE_SUBNET_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies whether auto mode subnet creation is allowed."
        },
        "allowStaticRoutes": {
          "enum": [
            "STATIC_ROUTES_ALLOWED",
            "STATIC_ROUTES_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "description": "Specifies whether static route creation is allowed."
        },
        "allowPrivateGoogleAccess": {
          "type": "string",
          "description": "Specifies whether private Google access is allowed.",
          "enum": [
            "PRIVATE_GOOGLE_ACCESS_ALLOWED",
            "PRIVATE_GOOGLE_ACCESS_BLOCKED"
          ],
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "firewallPolicyTypes": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "",
              "",
              ""
            ],
            "type": "string",
            "enum": [
              "RDMA_ROCE_POLICY",
              "ULL_POLICY",
              "VPC_POLICY"
            ]
          }
        }
      },
      "type": "object",
      "id": "NetworkProfileNetworkFeatures"
    },
    "InterconnectDiagnosticsLinkOpticalPower": {
      "properties": {
        "state": {
          "enum": [
            "HIGH_ALARM",
            "HIGH_WARNING",
            "LOW_ALARM",
            "LOW_WARNING",
            "OK"
          ],
          "description": "The status of the current value when compared to the warning and alarm\nlevels for the receiving or transmitting transceiver. Possible states\ninclude:\n   \n   \n    - OK: The value has not crossed a warning threshold.\n    - LOW_WARNING: The value has crossed below the low\n    warning threshold. \n   - HIGH_WARNING: The value has\n    crossed above the high warning threshold.\n    - LOW_ALARM: The value has crossed below the low alarm\n    threshold.\n    - HIGH_ALARM: The value has crossed above the high alarm\n    threshold.",
          "enumDescriptions": [
            "The value has crossed above the high alarm threshold.",
            "The value of the current optical power has crossed above the high\nwarning threshold.",
            "The value of the current optical power has crossed below the low alarm\nthreshold.",
            "The value of the current optical power has crossed below the low\nwarning threshold.",
            "The value of the current optical power has not crossed a warning\nthreshold."
          ],
          "type": "string"
        },
        "value": {
          "description": "Value of the current receiving or transmitting optical power, read in\ndBm. Take a known good optical value, give it a 10% margin and trigger\nwarnings relative to that value. In general, a -7dBm warning and a -11dBm\nalarm are good optical value estimates for most links.",
          "type": "number",
          "format": "float"
        }
      },
      "type": "object",
      "id": "InterconnectDiagnosticsLinkOpticalPower"
    },
    "Expr": {
      "type": "object",
      "id": "Expr",
      "properties": {
        "description": {
          "description": "Optional. Description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.",
          "type": "string"
        },
        "location": {
          "description": "Optional. String indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.",
          "type": "string"
        },
        "expression": {
          "type": "string",
          "description": "Textual representation of an expression in Common Expression Language\nsyntax."
        },
        "title": {
          "type": "string",
          "description": "Optional. Title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression."
        }
      },
      "description": "Represents a textual expression in the Common Expression Language (CEL)\nsyntax. CEL is a C-like expression language. The syntax and semantics of CEL\nare documented at https://github.com/google/cel-spec.\n\nExample (Comparison):\n\n    title: \"Summary size limit\"\n    description: \"Determines if a summary is less than 100 chars\"\n    expression: \"document.summary.size() \u003c 100\"\n\nExample (Equality):\n\n    title: \"Requestor is owner\"\n    description: \"Determines if requestor is the document owner\"\n    expression: \"document.owner == request.auth.claims.email\"\n\nExample (Logic):\n\n    title: \"Public documents\"\n    description: \"Determine whether the document should be publicly visible\"\n    expression: \"document.type != 'private' && document.type != 'internal'\"\n\nExample (Data Manipulation):\n\n    title: \"Notification string\"\n    description: \"Create a notification string with a timestamp.\"\n    expression: \"'New message received at ' + string(document.create_time)\"\n\nThe exact variables and functions that may be referenced within an expression\nare determined by the service that evaluates it. See the service\ndocumentation for additional information."
    },
    "SourceInstanceProperties": {
      "properties": {
        "disks": {
          "items": {
            "$ref": "SavedAttachedDisk"
          },
          "type": "array",
          "description": "An array of disks that are associated with the instances that are created\nfrom this machine image."
        },
        "description": {
          "description": "An optional text description for the instances that are created from this\nmachine image.",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata key/value pairs to assign to instances that are created from\nthis machine image. These pairs can consist of custom metadata or\npredefined keys. SeeProject and\ninstance metadata for more information.",
          "$ref": "Metadata"
        },
        "postKeyRevocationActionType": {
          "type": "string",
          "description": "PostKeyRevocationActionType of the instance.",
          "enumDescriptions": [
            "Indicates user chose no operation.",
            "Default value. This value is unused.",
            "Indicates user chose to opt for VM shutdown on key revocation."
          ],
          "enum": [
            "NOOP",
            "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED",
            "SHUTDOWN"
          ]
        },
        "tags": {
          "description": "A list of tags to apply to the instances that are created from this machine\nimage. The tags identify valid sources or targets for network firewalls.\nThe setTags method can modify this list of tags. Each tag within the list\nmust comply withRFC1035.",
          "$ref": "Tags"
        },
        "canIpForward": {
          "description": "Enables instances created based on this machine image to send packets with\nsource IP addresses other than their own and receive packets with\ndestination IP addresses other than their own. If these instances will be\nused as an IP gateway or it will be set as the next-hop in a Route\nresource, specify true. If unsure, leave this set tofalse. See theEnable IP forwarding\ndocumentation for more information.",
          "type": "boolean"
        },
        "minCpuPlatform": {
          "description": "Minimum cpu/platform to be used by instances created from this machine\nimage. The instance may be scheduled on the specified or newer\ncpu/platform. Applicable values are the friendly names of CPU platforms,\nsuch as minCpuPlatform: \"Intel Haswell\" orminCpuPlatform: \"Intel Sandy Bridge\". For more\ninformation, read Specifying a\nMinimum CPU Platform.",
          "type": "string"
        },
        "guestAccelerators": {
          "description": "A list of guest accelerator cards' type and count to use for instances\ncreated from this machine image.",
          "type": "array",
          "items": {
            "$ref": "AcceleratorConfig"
          }
        },
        "serviceAccounts": {
          "items": {
            "$ref": "ServiceAccount"
          },
          "type": "array",
          "description": "A list of service accounts with specified scopes. Access tokens for these\nservice accounts are available to the instances that are created from this\nmachine image. Use metadata queries to obtain the access tokens for these\ninstances."
        },
        "machineType": {
          "type": "string",
          "description": "The machine type to use for instances that are created from this machine\nimage."
        },
        "labels": {
          "type": "object",
          "description": "Labels to apply to instances that are created from this machine image.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "scheduling": {
          "description": "Specifies the scheduling options for the instances that are created from\nthis machine image.",
          "$ref": "Scheduling"
        },
        "keyRevocationActionType": {
          "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and\n\"NONE\". The default value is \"NONE\" if it is not specified.",
          "enum": [
            "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED",
            "NONE",
            "STOP"
          ],
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Indicates user chose no operation.",
            "Indicates user chose to opt for VM shutdown on key revocation."
          ],
          "type": "string"
        },
        "deletionProtection": {
          "type": "boolean",
          "description": "Whether the instance created from this machine image should be protected\nagainst deletion."
        },
        "networkInterfaces": {
          "description": "An array of network access configurations for this interface.",
          "type": "array",
          "items": {
            "$ref": "NetworkInterface"
          }
        }
      },
      "description": "DEPRECATED: Please use compute#instanceProperties instead.\nNew properties will not be added to this field.",
      "id": "SourceInstanceProperties",
      "type": "object"
    },
    "ReservationSlotsListResponse": {
      "description": "A list of reservation slots within a single reservation.",
      "properties": {
        "items": {
          "description": "A list of reservation slot resources.",
          "items": {
            "$ref": "ReservationSlot"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "description": "The unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "kind": {
          "description": "The type of resource. Alwayscompute#reservationSlot for a list of reservation\nslots.",
          "type": "string",
          "default": "compute#reservationSlot"
        },
        "warning": {
          "description": "An informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          }
        },
        "selfLink": {
          "type": "string",
          "description": "The server-defined URL for this resource."
        }
      },
      "id": "ReservationSlotsListResponse",
      "type": "object"
    },
    "VmExtensionPolicyExtensionPolicy": {
      "id": "VmExtensionPolicyExtensionPolicy",
      "type": "object",
      "properties": {
        "pinnedVersion": {
          "type": "string",
          "description": "Optional. The specific version of the extension to install. If not set, the latest\nversion is used."
        },
        "stringConfig": {
          "description": "Optional. String-based configuration data for the extension.",
          "type": "string"
        }
      },
      "description": "Configuration for a specific VM extension."
    },
    "DiskInstantiationConfig": {
      "description": "A specification of the desired way to instantiate a disk in the instance\ntemplate when its created from a source instance.",
      "id": "DiskInstantiationConfig",
      "properties": {
        "deviceName": {
          "description": "Specifies the device name of the disk to which the configurations apply to.",
          "type": "string"
        },
        "autoDelete": {
          "description": "Specifies whether the disk will be auto-deleted when the instance is\ndeleted (but not when the disk is detached from the instance).",
          "type": "boolean"
        },
        "customImage": {
          "type": "string",
          "description": "The custom source image to be used to restore this disk when instantiating\nthis instance template."
        },
        "instantiateFrom": {
          "enum": [
            "ATTACH_READ_ONLY",
            "BLANK",
            "CUSTOM_IMAGE",
            "DEFAULT",
            "DO_NOT_INCLUDE",
            "SOURCE_IMAGE",
            "SOURCE_IMAGE_FAMILY"
          ],
          "enumDescriptions": [
            "Attach the existing disk in read-only mode. The request will fail if the\ndisk was attached in read-write mode on the source instance. Applicable\nto: read-only disks.",
            "Create a blank disk. The disk will be created unformatted. Applicable to:\nadditional read-write disks, local SSDs.",
            "Use the custom image specified in the custom_image field. Applicable to:\nboot disk, additional read-write disks.",
            "Use the default instantiation option for the corresponding type of disk.\nFor boot disk and any other R/W disks, new custom images will be created\nfrom each disk. For read-only disks, they will be attached in read-only\nmode. Local SSD disks will be created as blank volumes.",
            "Do not include the disk in the instance template. Applicable to:\nadditional read-write disks, local SSDs, read-only disks.",
            "Use the same source image used for creation of the source instance's\ncorresponding disk. The request will fail if the source VM's disk was\ncreated from a snapshot. Applicable to: boot disk, additional read-write\ndisks.",
            "Use the same source image family used for creation of the source\ninstance's corresponding disk. The request will fail if the source image\nof the source disk does not belong to any image family. Applicable to:\nboot disk, additional read-write disks."
          ],
          "description": "Specifies whether to include the disk and what image to use. Possible\nvalues are:\n   \n   \n     - source-image: to use the same image that was used to\n     create the source instance's corresponding disk. Applicable to the boot\n     disk and additional read-write disks.\n     - source-image-family: to use the same image family that\n     was used to create the source instance's corresponding disk. Applicable\n     to the boot disk and additional read-write disks.\n     - custom-image: to use a user-provided image url for disk\n     creation. Applicable to the boot disk and additional read-write\n     disks. \n   - attach-read-only: to attach a read-only\n     disk. Applicable to read-only disks.\n     - do-not-include: to exclude a disk from the template.\n     Applicable to additional read-write disks, local SSDs, and read-only\n     disks.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Route": {
      "id": "Route",
      "properties": {
        "nextHopInterRegionCost": {
          "readOnly": true,
          "description": "Output only. [Output only] Internal fixed region-to-region cost that Google Cloud\ncalculates based on factors such as network performance, distance, and\navailable bandwidth between regions.",
          "format": "uint32",
          "type": "integer"
        },
        "destRange": {
          "annotations": {
            "required": [
              "compute.routes.insert"
            ]
          },
          "description": "The destination range of outgoing packets that this route applies to. Both\nIPv4 and IPv6 are supported.\nMust specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291\nformat (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952\ncompressed format.",
          "type": "string"
        },
        "nextHopOrigin": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "EGP",
            "IGP",
            "INCOMPLETE"
          ],
          "description": "Output only. [Output Only] Indicates the origin of the route. Can be IGP\n(Interior Gateway Protocol), EGP (Exterior Gateway Protocol),\nor INCOMPLETE."
        },
        "nextHopHub": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The full resource name of the Network Connectivity Center hub\nthat will handle matching packets."
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "A list of instance tags to which this route applies."
        },
        "warnings": {
          "readOnly": true,
          "description": "Output only. [Output Only] If potential misconfigurations are detected for this\nroute, this field will be populated with warning messages.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "enum": [
                  "CLEANUP_FAILED",
                  "DEPRECATED_RESOURCE_USED",
                  "DEPRECATED_TYPE_USED",
                  "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                  "EXPERIMENTAL_TYPE_USED",
                  "EXTERNAL_API_WARNING",
                  "FIELD_VALUE_OVERRIDEN",
                  "INJECTED_KERNELS_DEPRECATED",
                  "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                  "LARGE_DEPLOYMENT_WARNING",
                  "LIST_OVERHEAD_QUOTA_EXCEED",
                  "MISSING_TYPE_DEPENDENCY",
                  "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                  "NEXT_HOP_CANNOT_IP_FORWARD",
                  "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                  "NEXT_HOP_INSTANCE_NOT_FOUND",
                  "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                  "NEXT_HOP_NOT_RUNNING",
                  "NOT_CRITICAL_ERROR",
                  "NO_RESULTS_ON_PAGE",
                  "PARTIAL_SUCCESS",
                  "QUOTA_INFO_UNAVAILABLE",
                  "REQUIRED_TOS_AGREEMENT",
                  "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                  "RESOURCE_NOT_DELETED",
                  "SCHEMA_VALIDATION_IGNORED",
                  "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                  "UNDECLARED_PROPERTIES",
                  "UNREACHABLE"
                ],
                "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
                "enumDescriptions": [
                  "Warning about failed cleanup of transient changes made by a failed\noperation.",
                  "A link to a deprecated resource was created.",
                  "When deploying and at least one of the resources has a type marked as\ndeprecated",
                  "The user created a boot disk that is larger than image size.",
                  "When deploying and at least one of the resources has a type marked as\nexperimental",
                  "Warning that is present in an external api call",
                  "Warning that value of a field has been overridden.\nDeprecated unused field.",
                  "The operation involved use of an injected kernel, which is deprecated.",
                  "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                  "When deploying a deployment with a exceedingly large number of resources",
                  "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                  "A resource depends on a missing type",
                  "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                  "The route's next hop instance cannot ip forward.",
                  "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                  "The route's nextHopInstance URL refers to an instance that does not exist.",
                  "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                  "The route's next hop instance does not have a status of RUNNING.",
                  "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                  "No results are present on a particular list page.",
                  "Success is reported, but some results may be missing due to errors",
                  "Quota information is not available to client requests (e.g:\nregions.list).",
                  "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                  "Warning that a resource is in use.",
                  "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                  "When a resource schema validation is ignored.",
                  "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                  "When undeclared properties in the schema are present",
                  "A given scope cannot be reached."
                ],
                "enumDeprecated": [
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  true,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false
                ],
                "type": "string"
              },
              "data": {
                "type": "array",
                "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
                "items": {
                  "properties": {
                    "value": {
                      "type": "string",
                      "description": "[Output Only] A warning data value corresponding to the key."
                    },
                    "key": {
                      "type": "string",
                      "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                    }
                  },
                  "type": "object"
                }
              },
              "message": {
                "description": "[Output Only] A human-readable description of the warning code.",
                "type": "string"
              }
            }
          }
        },
        "nextHopMed": {
          "description": "Output only. [Output Only] Multi-Exit Discriminator, a BGP route metric that indicates\nthe desirability of a particular route in a network.",
          "format": "uint32",
          "type": "integer",
          "readOnly": true
        },
        "nextHopIp": {
          "type": "string",
          "description": "The network IP address of an instance that should handle matching packets.\nBoth IPv6 address and IPv4 addresses are supported.\nMust specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or\nan IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or\n2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952\ncompressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an\nIPv4-mapped IPv6 address."
        },
        "params": {
          "$ref": "RouteParams",
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload."
        },
        "nextHopInstance": {
          "description": "The URL to an instance that should handle matching packets. You can specify\nthis as a full or partial URL.\nFor example: \nhttps://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/",
          "type": "string"
        },
        "nextHopPeering": {
          "description": "Output only. [Output Only] The network peering name that should handle matching packets,\nwhich should conform to RFC1035.",
          "readOnly": true,
          "type": "string"
        },
        "network": {
          "annotations": {
            "required": [
              "compute.routes.insert"
            ]
          },
          "description": "Fully-qualified URL of the network that this route applies to.",
          "type": "string"
        },
        "name": {
          "annotations": {
            "required": [
              "compute.routes.insert"
            ]
          },
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a\nlowercase letter, and all following characters (except for the last\ncharacter) must be a dash, lowercase letter, or digit. The last character\nmust be a lowercase letter or digit.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "description": {
          "description": "An optional description of this resource. Provide this field when you\ncreate the resource.",
          "type": "string"
        },
        "nextHopVpnTunnel": {
          "description": "The URL to a VpnTunnel that should handle matching packets.",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "nextHopNetwork": {
          "type": "string",
          "description": "The URL of the local network if it should handle matching packets."
        },
        "nextHopGateway": {
          "description": "The URL to a gateway that should handle matching packets.\nYou can only specify the internet gateway using a full or\npartial valid URL: projects/project/global/gateways/default-internet-gateway",
          "type": "string"
        },
        "nextHopIlb": {
          "type": "string",
          "description": "The URL to a forwarding rule of typeloadBalancingScheme=INTERNAL that should handle matching\npackets or the IP address of the forwarding Rule.\nFor example, the following are all valid URLs:\n   \n   \n      - https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule \n   - regions/region/forwardingRules/forwardingRule\n\n\nIf an IP address is provided, must specify an IPv4 address in dot-decimal\nnotation or an IPv6 address in RFC 4291 format. For example, the following\nare all valid IP addresses:\n   \n   \n      - 10.128.0.56\n      - 2001:db8::2d9:51:0:0\n      - 2001:db8:0:0:2d9:51:0:0\n\n\nIPv6 addresses will be displayed using RFC 5952 compressed format (e.g.\n2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address."
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "nextHopInterconnectAttachment": {
          "readOnly": true,
          "description": "Output only. [Output Only] The URL to an InterconnectAttachment which is the next hop\nfor the route.\nThis field will only be populated for dynamic routes generated by\nCloud Router with a linked interconnectAttachment or the static route\ngenerated by each L2 Interconnect Attachment.",
          "type": "string"
        },
        "priority": {
          "format": "uint32",
          "annotations": {
            "required": [
              "compute.routes.insert"
            ]
          },
          "type": "integer",
          "description": "The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length. In\ncases where multiple routes have equal prefix length, the one with the\nlowest-numbered priority value wins. The default value is `1000`. The\npriority value must be from `0` to `65535`, inclusive."
        },
        "routeStatus": {
          "enumDescriptions": [
            "This route is processed and active.",
            "The route is dropped due to the VPC exceeding the dynamic route limit.\n For dynamic route limit, please refer to the\nLearned route example",
            "This route is processed but inactive due to failure from the backend. The\nbackend may have rejected the route",
            "This route is being processed internally. The status will change once\nprocessed."
          ],
          "type": "string",
          "description": "[Output only] The status of the route. This status applies to\ndynamic routes learned by Cloud Routers. It is also applicable to routes\nundergoing migration.",
          "enum": [
            "ACTIVE",
            "DROPPED",
            "INACTIVE",
            "PENDING"
          ]
        },
        "routeType": {
          "description": "Output only. [Output Only] The type of this route, which can be one of the following\nvalues:\n- 'TRANSIT' for a transit route that this router learned from\nanother Cloud Router and will readvertise to one of its BGP peers \n- 'SUBNET' for a route from a subnet of the VPC \n- 'BGP' for a route learned from a BGP peer of this router \n- 'STATIC' for a static route",
          "enum": [
            "BGP",
            "STATIC",
            "SUBNET",
            "TRANSIT"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "readOnly": true,
          "type": "string"
        },
        "kind": {
          "default": "compute#route",
          "description": "Output only. [Output Only] Type of this resource. Always compute#routes for\nRoute resources.",
          "type": "string",
          "readOnly": true
        },
        "asPaths": {
          "description": "Output only. [Output Only] AS path.",
          "items": {
            "$ref": "RouteAsPath"
          },
          "type": "array",
          "readOnly": true
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined fully-qualified URL for this resource."
        }
      },
      "description": "Represents a Route resource.\n\nA route defines a path from VM instances in the VPC network to a specific\ndestination. This destination can be inside or outside the VPC network.\nFor more information, read theRoutes overview.",
      "type": "object"
    },
    "ReservationBlockHealthInfo": {
      "properties": {
        "degradedSubBlockCount": {
          "description": "The number of subBlocks that are degraded.",
          "type": "integer",
          "format": "int32"
        },
        "healthStatus": {
          "enumDescriptions": [
            "The reservation block is degraded.",
            "The reservation block is healthy.",
            "The health status of the reservation block is unspecified."
          ],
          "type": "string",
          "enum": [
            "DEGRADED",
            "HEALTHY",
            "HEALTH_STATUS_UNSPECIFIED"
          ],
          "description": "The health status of the reservation block."
        },
        "healthySubBlockCount": {
          "description": "The number of subBlocks that are healthy.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "ReservationBlockHealthInfo",
      "description": "Health information for the reservation block.",
      "type": "object"
    },
    "DiskList": {
      "type": "object",
      "description": "A list of Disk resources.",
      "properties": {
        "items": {
          "description": "A list of Disk resources.",
          "type": "array",
          "items": {
            "$ref": "Disk"
          }
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Always compute#diskList for\nlists of disks.",
          "default": "compute#diskList",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      },
      "id": "DiskList"
    },
    "AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState": {
      "description": "Info for each topology state.",
      "properties": {
        "state": {
          "description": "The state of the accelerator topology.",
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true
          ],
          "enumDescriptions": [
            "The accelerator topology is available.",
            "The accelerator topology is degraded. The underlying capacity is not in a\nhealthy state and is not available.",
            "The accelerator topology is running. If there are both running and\ndegraded hosts within a topology, DEGRADED state will be returned.",
            "The state of the topology is unspecified.",
            "This value has been deprecated and is no longer used."
          ],
          "enum": [
            "AVAILABLE",
            "DEGRADED",
            "RUNNING",
            "TOPOLOGY_STATE_UNSPECIFIED",
            "UNHEALTHY"
          ]
        },
        "count": {
          "format": "int32",
          "type": "integer",
          "description": "The number of accelerator topologies in this state."
        }
      },
      "type": "object",
      "id": "AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState"
    },
    "HealthCheckServiceAggregatedList": {
      "description": "Contains a list of HealthCheckServicesScopedList.",
      "id": "HealthCheckServiceAggregatedList",
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "warning": {
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "kind": {
          "description": "Output only. Type of resource.",
          "default": "compute#healthCheckServiceAggregatedList",
          "readOnly": true,
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "items": {
          "description": "A list of HealthCheckServicesScopedList resources.",
          "type": "object",
          "additionalProperties": {
            "description": "Name of the scope containing this set of HealthCheckServices.",
            "$ref": "HealthCheckServicesScopedList"
          }
        }
      },
      "type": "object"
    },
    "NetworkPeeringConnectionStatusTrafficConfiguration": {
      "id": "NetworkPeeringConnectionStatusTrafficConfiguration",
      "properties": {
        "exportSubnetRoutesWithPublicIpToPeer": {
          "type": "boolean",
          "description": "Whether subnet routes with public IP ranges are being exported to the\npeer network."
        },
        "importSubnetRoutesWithPublicIpFromPeer": {
          "type": "boolean",
          "description": "Whether subnet routes with public IP ranges are being imported\nfrom the peer network."
        },
        "exportCustomRoutesToPeer": {
          "type": "boolean",
          "description": "Whether custom routes are being exported to the peer network."
        },
        "importCustomRoutesFromPeer": {
          "description": "Whether custom routes are being imported from the peer network.",
          "type": "boolean"
        },
        "stackType": {
          "enumDescriptions": [
            "This Peering will allow IPv4 traffic and routes to be\nexchanged. Additionally if the matching peering is\nIPV4_IPV6, IPv6 traffic and routes will be exchanged as\nwell.",
            "This Peering will only allow IPv4 traffic and routes to be\nexchanged, even if the matching peering is IPV4_IPV6."
          ],
          "enum": [
            "IPV4_IPV6",
            "IPV4_ONLY"
          ],
          "description": "Which IP version(s) of traffic and routes are being imported or\nexported between peer networks.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "HealthSourcesScopedList": {
      "type": "object",
      "properties": {
        "warning": {
          "type": "object",
          "description": "Informational warning which replaces the list of\nhealth sources when the list is empty.",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          }
        },
        "healthSources": {
          "description": "A list of HealthSources contained in this scope.",
          "items": {
            "$ref": "HealthSource"
          },
          "type": "array"
        }
      },
      "id": "HealthSourcesScopedList"
    },
    "SecurityPolicyRuleMatcherConfig": {
      "properties": {
        "srcIpRanges": {
          "items": {
            "type": "string"
          },
          "description": "CIDR IP address range.\nMaximum number of src_ip_ranges allowed is 10.",
          "type": "array"
        }
      },
      "id": "SecurityPolicyRuleMatcherConfig",
      "type": "object"
    },
    "HttpsHealthCheck": {
      "id": "HttpsHealthCheck",
      "description": "Represents a legacy HTTPS Health Check resource.\n\nLegacy HTTPS health checks have been deprecated. If you are using a target\npool-based network load balancer, you must use a legacy HTTP (not HTTPS)\nhealth check. For all other load balancers, including backend service-based\nnetwork load balancers, and for managed instance group auto-healing, you must\nuse modern (non-legacy) health checks.\n\nFor more information, seeHealth checks\noverview.",
      "properties": {
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "unhealthyThreshold": {
          "description": "A so-far healthy instance will be marked unhealthy after this\nmany consecutive failures. The default value is 2.",
          "format": "int32",
          "type": "integer"
        },
        "requestPath": {
          "type": "string",
          "description": "The request path of the HTTPS health check request. The default value is\n\"/\". Must comply withRFC3986."
        },
        "timeoutSec": {
          "description": "How long (in seconds) to wait before claiming failure. The default value is\n5 seconds. It is invalid for timeoutSec to have a greater value than\ncheckIntervalSec.",
          "type": "integer",
          "format": "int32"
        },
        "healthyThreshold": {
          "format": "int32",
          "type": "integer",
          "description": "A so-far unhealthy instance will be marked healthy after this\nmany consecutive successes. The default value is 2."
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "checkIntervalSec": {
          "type": "integer",
          "format": "int32",
          "description": "How often (in seconds) to send a health check. The default value is 5\nseconds."
        },
        "port": {
          "type": "integer",
          "description": "The TCP port number for the HTTPS health check request. The default value\nis 443.",
          "format": "int32"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "creationTimestamp": {
          "description": "[Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "host": {
          "type": "string",
          "description": "The value of the host header in the HTTPS health check request. If left\nempty (default value), the public IP on behalf of which this health check\nis performed will be used."
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "kind": {
          "type": "string",
          "default": "compute#httpsHealthCheck",
          "readOnly": true,
          "description": "Output only. Type of the resource."
        }
      },
      "type": "object"
    },
    "LocationPolicyLocation": {
      "id": "LocationPolicyLocation",
      "properties": {
        "preference": {
          "type": "string",
          "enumDescriptions": [
            "Location is allowed for use.",
            "Location is prohibited.",
            "Default value, unused."
          ],
          "description": "Preference for a given location. Set to either ALLOW orDENY.",
          "enum": [
            "ALLOW",
            "DENY",
            "PREFERENCE_UNSPECIFIED"
          ]
        },
        "constraints": {
          "$ref": "LocationPolicyLocationConstraints",
          "description": "Constraints that the caller requires on the result distribution\nin this zone."
        }
      },
      "type": "object"
    },
    "TargetSslProxiesSetBackendServiceRequest": {
      "type": "object",
      "properties": {
        "service": {
          "description": "The URL of the new BackendService resource for the targetSslProxy.",
          "type": "string"
        }
      },
      "id": "TargetSslProxiesSetBackendServiceRequest"
    },
    "GlobalSetLabelsRequest": {
      "type": "object",
      "id": "GlobalSetLabelsRequest",
      "properties": {
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of labels to apply for this resource. Each label must comply with\nthe\nrequirements for labels. For example,\"webserver-frontend\": \"images\". A label value can also be\nempty (e.g. \"my-label\": \"\")."
        },
        "labelFingerprint": {
          "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by Compute\nEngine and changes after every request to modify or update labels. You must\nalways provide an up-to-date fingerprint hash when updating or changing\nlabels, otherwise the request will fail with error412 conditionNotMet.  Make a get() request to the\nresource to get the latest fingerprint.",
          "type": "string",
          "format": "byte"
        }
      }
    },
    "InstanceFlexibilityPolicy": {
      "type": "object",
      "description": "A flexible specification of machine types for instances to create.",
      "properties": {
        "instanceSelections": {
          "additionalProperties": {
            "$ref": "InstanceFlexibilityPolicyInstanceSelection"
          },
          "description": "Specification of alternative, flexible instance subsets.\nOne of them will be selected to create the instances\nbased on various criteria, like:\n- ranks,\n- location policy,\n- current capacity,\n- available reservations (you can specify affinity in\nInstanceProperties),\n- SWAN/GOOSE limitations.\nKey is an arbitrary, unique RFC1035 string that identifies the instance\nselection.",
          "type": "object"
        }
      },
      "id": "InstanceFlexibilityPolicy"
    },
    "Disk": {
      "id": "Disk",
      "description": "Represents a Persistent Disk resource.\n\nGoogle Compute Engine has two Disk resources:\n\n* [Zonal](/compute/docs/reference/rest/v1/disks)\n* [Regional](/compute/docs/reference/rest/v1/regionDisks)\n\nPersistent disks are required for running your VM instances.\nCreate both boot and non-boot (data) persistent disks. For more information,\nread Persistent Disks. For more\nstorage options, read Storage options.\n\nThe disks resource represents a zonal persistent disk.\nFor more information, readZonal persistent disks.\n\nThe regionDisks resource represents a\nregional persistent disk.  For more information, read\nRegional resources.",
      "properties": {
        "sourceSnapshotId": {
          "readOnly": true,
          "description": "Output only. [Output Only] The unique ID of the snapshot used to create this disk. This\nvalue identifies the exact snapshot that was used to create this persistent\ndisk. For example, if you created the persistent disk from a snapshot that\nwas later deleted and recreated under the same name, the source snapshot ID\nwould identify the exact version of the snapshot that was used.",
          "type": "string"
        },
        "provisionedThroughput": {
          "format": "int64",
          "description": "Indicates how much throughput to provision for the disk. This sets the\nnumber of throughput mb per second that the disk can handle. Values must be\ngreater than or equal to 1.",
          "type": "string"
        },
        "labelFingerprint": {
          "description": "A fingerprint for the labels being applied to this disk, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a disk.",
          "format": "byte",
          "type": "string"
        },
        "guestOsFeatures": {
          "type": "array",
          "description": "A list of features to enable on the guest operating system. Applicable\nonly for bootable images. Read\nEnabling guest operating system features to see a list of available\noptions.",
          "items": {
            "$ref": "GuestOsFeature"
          }
        },
        "satisfiesPzi": {
          "type": "boolean",
          "description": "Output only. Reserved for future use.",
          "readOnly": true
        },
        "asyncSecondaryDisks": {
          "readOnly": true,
          "description": "Output only. [Output Only] A list of disks this disk is asynchronously replicated to.",
          "type": "object",
          "additionalProperties": {
            "$ref": "DiskAsyncReplicationList"
          }
        },
        "resourceStatus": {
          "$ref": "DiskResourceStatus",
          "readOnly": true,
          "description": "Output only. [Output Only] Status information for the disk resource."
        },
        "status": {
          "type": "string",
          "description": "Output only. [Output Only] The status of disk creation.\n   \n   \n     - CREATING: Disk is provisioning.\n     - RESTORING: Source data is being copied into the\n     disk.\n     - FAILED: Disk creation failed.\n     - READY: Disk is ready for use.\n     - DELETING: Disk is deleting.",
          "enumDescriptions": [
            "Disk is provisioning",
            "Disk is deleting.",
            "Disk creation failed.",
            "Disk is ready for use.",
            "Source data is being copied into the disk.",
            "Disk is currently unavailable and cannot be accessed, attached or\ndetached."
          ],
          "enum": [
            "CREATING",
            "DELETING",
            "FAILED",
            "READY",
            "RESTORING",
            "UNAVAILABLE"
          ],
          "readOnly": true
        },
        "physicalBlockSizeBytes": {
          "format": "int64",
          "description": "Physical block size of the persistent disk, in bytes.\nIf not present in a request, a default value is used.\nThe currently supported size is 4096, other sizes may be added in\nthe future.\nIf an unsupported value is requested, the error message will list\nthe supported values for the caller's project.",
          "type": "string"
        },
        "locationHint": {
          "description": "An opaque location hint used to place the disk close to other resources.\nThis field is for use by internal tools that use the public API.",
          "type": "string"
        },
        "sourceSnapshot": {
          "description": "The source snapshot used to create this disk. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot \n   - projects/project/global/snapshots/snapshot\n     - global/snapshots/snapshot",
          "type": "string"
        },
        "zone": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the zone where the disk resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "readOnly": true
        },
        "replicaZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "URLs of the zones where the disk should be replicated to. Only applicable\nfor regional resources."
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "DiskParams"
        },
        "labels": {
          "description": "Labels to apply to this disk. These can be later modified by\nthe setLabels method.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.disks.insert"
            ]
          }
        },
        "asyncPrimaryDisk": {
          "description": "Disk asynchronously replicated into this disk.",
          "$ref": "DiskAsyncReplication"
        },
        "architecture": {
          "enum": [
            "ARCHITECTURE_UNSPECIFIED",
            "ARM64",
            "X86_64"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value indicating Architecture is not set.",
            "Machines with architecture ARM64",
            "Machines with architecture X86_64"
          ],
          "description": "The architecture of the disk. Valid values are\nARM64 or X86_64."
        },
        "lastAttachTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Last attach timestamp inRFC3339\ntext format."
        },
        "sourceConsistencyGroupPolicyId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk\nthat was created using a consistency group."
        },
        "satisfiesPzs": {
          "type": "boolean",
          "description": "Output only. [Output Only] Reserved for future use.",
          "readOnly": true
        },
        "storagePool": {
          "type": "string",
          "description": "The storage pool in which the new disk is created. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/zones/zone/storagePools/storagePool\n     - projects/project/zones/zone/storagePools/storagePool \n   - zones/zone/storagePools/storagePool"
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource."
        },
        "licenses": {
          "description": "A list of publicly visible licenses. Reserved for Google's use.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "sourceImageEncryptionKey": {
          "$ref": "CustomerEncryptionKey",
          "description": "Thecustomer-supplied\nencryption key of the source image. Required if the source image is\nprotected by a customer-supplied encryption key."
        },
        "sourceDisk": {
          "description": "The source disk used to create this disk. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n   \n   \n     - \n       https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n     \n     - \n       https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n     \n     - \n       projects/project/zones/zone/disks/disk\n     \n     - \n       projects/project/regions/region/disks/disk\n     \n     - \n       zones/zone/disks/disk\n     \n     - \n       regions/region/disks/disk",
          "type": "string"
        },
        "sourceConsistencyGroupPolicy": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk\nthat was created using a consistency group.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "sourceInstantSnapshotId": {
          "type": "string",
          "description": "Output only. [Output Only] The unique ID of the instant snapshot used to create this\ndisk. This value identifies the exact instant snapshot that was used to\ncreate this persistent disk. For example, if you created the persistent\ndisk from an instant snapshot that was later deleted and recreated under\nthe same name, the source instant snapshot ID would identify the exact\nversion of the instant snapshot that was used.",
          "readOnly": true
        },
        "sourceDiskId": {
          "description": "Output only. [Output Only] The unique ID of the disk used to create this disk. This\nvalue identifies the exact disk that was used to create this persistent\ndisk. For example, if you created the persistent disk from a disk that\nwas later deleted and recreated under the same name, the source disk ID\nwould identify the exact version of the disk that was used.",
          "type": "string",
          "readOnly": true
        },
        "enableConfidentialCompute": {
          "description": "Whether this disk is using confidential compute mode.",
          "type": "boolean"
        },
        "sizeGb": {
          "description": "Size, in GB, of the persistent disk. You can specify\nthis field when creating a persistent disk using thesourceImage, sourceSnapshot, orsourceDisk parameter, or specify it alone to create an empty\npersistent disk.\n\nIf you specify this field along with a source, the value ofsizeGb must not be less than the size of the\nsource.\nAcceptable values are greater than 0.",
          "format": "int64",
          "type": "string"
        },
        "sourceSnapshotEncryptionKey": {
          "description": "Thecustomer-supplied\nencryption key of the source snapshot. Required if the source snapshot\nis protected by a customer-supplied encryption key.",
          "$ref": "CustomerEncryptionKey"
        },
        "id": {
          "readOnly": true,
          "format": "uint64",
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "resourcePolicies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Resource policies applied to this disk for automatic snapshot creations."
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "sourceInstantSnapshot": {
          "type": "string",
          "description": "The source instant snapshot used to create this disk. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot\n     - projects/project/zones/zone/instantSnapshots/instantSnapshot \n   - zones/zone/instantSnapshots/instantSnapshot"
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the disk resides. Only applicable for\nregional resources.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body."
        },
        "provisionedIops": {
          "format": "int64",
          "description": "Indicates how many IOPS to provision for the disk. This sets the number\nof I/O operations per second that the disk can handle. Values must be\nbetween 10,000 and 120,000. For more details, see theExtreme persistent\ndisk documentation.",
          "type": "string"
        },
        "licenseCodes": {
          "items": {
            "format": "int64",
            "type": "string"
          },
          "type": "array",
          "description": "Integer license codes indicating which licenses are attached to this disk."
        },
        "sourceStorageObject": {
          "type": "string",
          "description": "The full Google Cloud Storage URI where the disk image is stored. This file\nmust be a gzip-compressed tarball whose name ends in .tar.gz or virtual\nmachine disk whose name ends in vmdk. Valid URIs may start with gs:// or\nhttps://storage.googleapis.com/. This flag is not optimized for creating\nmultiple disks from a source storage object. To create many disks from a\nsource storage object, use gcloud compute images\nimport instead."
        },
        "sourceImageId": {
          "description": "Output only. [Output Only] The ID value of the image used to create this disk. This\nvalue identifies the exact image that was used to create this persistent\ndisk. For example, if you created the persistent disk from an image that\nwas later deleted and recreated under the same name, the source image ID\nwould identify the exact version of the image that was used.",
          "readOnly": true,
          "type": "string"
        },
        "sourceImage": {
          "description": "The source image used to create this disk. If the source image is\ndeleted, this field will not be set.\n\nTo create a disk with one of the public operating system images, specify\nthe image by its family name. For example, specifyfamily/debian-9 to use the latest Debian 9 image:\n\nprojects/debian-cloud/global/images/family/debian-9\n\n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD\n\n\nTo create a disk with a custom image that you created, specify the\nimage name in the following format:\n\nglobal/images/my-custom-image\n\n\nYou can also specify a custom image by its image family, which returns\nthe latest version of the image in that family. Replace the image name\nwith family/family-name:\n\nglobal/images/family/my-image-family",
          "type": "string"
        },
        "type": {
          "description": "URL of the disk type resource describing which disk type to use to create\nthe disk. Provide this when creating the disk. For example:projects/project/zones/zone/diskTypes/pd-ssd. See Persistent disk\ntypes.",
          "type": "string"
        },
        "lastDetachTimestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Last detach timestamp inRFC3339\ntext format."
        },
        "users": {
          "type": "array",
          "description": "Output only. [Output Only] Links to the users of the disk (attached instances)\nin form:projects/project/zones/zone/instances/instance",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#disk",
          "description": "Output only. [Output Only] Type of the resource. Always compute#disk for\ndisks."
        },
        "accessMode": {
          "type": "string",
          "description": "The access mode of the disk.\n   \n   \n     - READ_WRITE_SINGLE: The default AccessMode, means the\n     disk can be attached to single instance in RW mode.\n     - READ_WRITE_MANY: The AccessMode means the disk can be\n     attached to multiple instances in RW mode.\n     - READ_ONLY_MANY: The AccessMode means the disk can be\n     attached to multiple instances in RO mode.\n\n\nThe AccessMode is only valid for Hyperdisk disk types.",
          "enumDescriptions": [
            "The AccessMode means the disk can be attached to multiple instances in RO\nmode.",
            "The AccessMode means the disk can be attached to multiple instances in RW\nmode.",
            "The default AccessMode, means the disk can be attached to single instance\nin RW mode."
          ],
          "enum": [
            "READ_ONLY_MANY",
            "READ_WRITE_MANY",
            "READ_WRITE_SINGLE"
          ]
        },
        "diskEncryptionKey": {
          "description": "Encrypts the disk using a\ncustomer-supplied encryption key or a \ncustomer-managed encryption key.\n\nEncryption keys do not protect access to metadata of the disk.\n\nAfter you encrypt a disk with a customer-supplied key, you must provide the\nsame key if you use the disk later. For example, to create a disk snapshot,\nto create a disk image, to create a machine image, or to attach the disk to\na virtual machine.\n\nAfter you encrypt a disk with a customer-managed key, thediskEncryptionKey.kmsKeyName is set to a key *version*\nname once the disk is created. The disk is encrypted with this version of\nthe key. In the response, diskEncryptionKey.kmsKeyName appears\nin the following format:\n\n\"diskEncryptionKey.kmsKeyName\":\n\"projects/kms_project_id/locations/region/keyRings/\nkey_region/cryptoKeys/key\n/cryptoKeysVersions/version\n\nIf you do not provide an encryption key when creating the disk, then the \ndisk is encrypted using an automatically generated key and you don't need \nto provide a key to use the disk later.",
          "$ref": "CustomerEncryptionKey"
        },
        "options": {
          "description": "Internal use only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BackendBucket": {
      "description": "Represents a Cloud Storage Bucket resource.\n\nThis Cloud Storage bucket resource is referenced by a URL map of a load\nbalancer. For more information, readBackend Buckets.",
      "id": "BackendBucket",
      "properties": {
        "compressionMode": {
          "description": "Compress text responses using Brotli or gzip compression, based on\nthe client's Accept-Encoding header.",
          "type": "string",
          "enum": [
            "AUTOMATIC",
            "DISABLED"
          ],
          "enumDescriptions": [
            "Automatically uses the best compression based on the Accept-Encoding\nheader sent by the client.",
            "Disables compression. Existing compressed responses cached by\nCloud CDN will not be served to clients."
          ]
        },
        "edgeSecurityPolicy": {
          "type": "string",
          "description": "[Output Only] The resource URL for the edge security policy associated with\nthis backend bucket."
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "loadBalancingScheme": {
          "enumDescriptions": [
            "Signifies that this will be used for regional external Application Load\nBalancers.",
            "Signifies that this will be used for internal Application Load Balancers."
          ],
          "description": "The value can only be INTERNAL_MANAGED for cross-region internal layer 7\nload balancer.\n\nIf loadBalancingScheme is not specified, the backend bucket can be used by\nclassic global external load balancers, or global application external load\nbalancers, or both.",
          "type": "string",
          "enum": [
            "EXTERNAL_MANAGED",
            "INTERNAL_MANAGED"
          ]
        },
        "kind": {
          "readOnly": true,
          "default": "compute#backendBucket",
          "description": "Output only. Type of the resource.",
          "type": "string"
        },
        "region": {
          "description": "Output only. [Output Only] URL of the region where the regional backend bucket\nresides. This field is not applicable to global backend buckets.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "readOnly": true,
          "type": "string"
        },
        "creationTimestamp": {
          "description": "[Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "usedBy": {
          "type": "array",
          "items": {
            "$ref": "BackendBucketUsedBy"
          },
          "description": "Output only. [Output Only] List of resources referencing that backend bucket.",
          "readOnly": true
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "enableCdn": {
          "description": "If true, enable Cloud CDN for this BackendBucket.",
          "type": "boolean"
        },
        "cdnPolicy": {
          "$ref": "BackendBucketCdnPolicy",
          "description": "Cloud CDN configuration for this BackendBucket."
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "BackendBucketParams"
        },
        "description": {
          "type": "string",
          "description": "An optional textual description of the resource; provided by the client\nwhen the resource is created."
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "bucketName": {
          "description": "Cloud Storage bucket name.",
          "type": "string"
        },
        "customResponseHeaders": {
          "description": "Headers that the Application Load Balancer should add to proxied responses.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "InstanceSettings": {
      "properties": {
        "metadata": {
          "$ref": "InstanceSettingsMetadata",
          "description": "The metadata key/value pairs assigned to all the instances in the\ncorresponding scope."
        },
        "zone": {
          "description": "Output only. [Output Only] URL of the zone where the resource resides\nYou must specify this field as part of the HTTP request URL. It is not\nsettable as a field in the request body.",
          "type": "string",
          "readOnly": true
        },
        "fingerprint": {
          "format": "byte",
          "type": "string",
          "description": "Specifies a fingerprint for instance settings, which is essentially a hash\nof the instance settings resource's contents and used for optimistic\nlocking. The fingerprint is initially generated by Compute Engine and\nchanges after every request to modify or update the instance settings\nresource. You must always provide an up-to-date fingerprint hash in order\nto update or change the resource, otherwise the request will fail with\nerror 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve the resource."
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#instanceSettings",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#instance_settings for instance settings."
        }
      },
      "id": "InstanceSettings",
      "type": "object",
      "description": "Represents a Instance Settings resource. You can use instance settings to\nconfigure default settings for Compute Engine VM instances. For example, you\ncan use it to configure default machine type of Compute Engine VM instances."
    },
    "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": {
      "type": "object",
      "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
      "properties": {
        "rules": {
          "items": {
            "$ref": "FirewallPolicyRule"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. [Output only] The rules that apply to the network."
        },
        "priority": {
          "description": "Output only. [Output only] Priority of firewall policy association. Not applicable for\ntype=HIERARCHY.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "type": {
          "enum": [
            "HIERARCHY",
            "NETWORK",
            "NETWORK_REGIONAL",
            "SYSTEM_GLOBAL",
            "SYSTEM_REGIONAL",
            "UNSPECIFIED"
          ],
          "description": "Output only. [Output Only] The type of the firewall policy. Can be one of HIERARCHY,\nNETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.",
          "readOnly": true,
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "packetMirroringRules": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output only] The packet mirroring rules that apply to the network.",
          "items": {
            "$ref": "FirewallPolicyRule"
          }
        },
        "displayName": {
          "description": "Output only. [Output Only] The display name of the firewall policy.",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the firewall policy."
        }
      }
    },
    "RegionInstanceGroupManagersApplyUpdatesRequest": {
      "id": "RegionInstanceGroupManagersApplyUpdatesRequest",
      "properties": {
        "allInstances": {
          "type": "boolean",
          "description": "Flag to update all instances instead of specified list of \"instances\".\nIf the flag is set to true then the instances may not be specified\nin the request."
        },
        "minimalAction": {
          "type": "string",
          "enumDescriptions": [
            "Do not perform any action.",
            "Do not stop the instance.",
            "(Default.) Replace the instance according to the replacement method\noption.",
            "Stop the instance and start it again."
          ],
          "description": "The minimal action that you want to perform on each instance during the\nupdate:\n   \n   \n     - REPLACE: At minimum, delete the instance and create it\n     again. \n   - RESTART: Stop the instance and start it\n     again. \n   - REFRESH: Do not stop the instance and limit\n     disruption as much as possible. \n   - NONE: Do not\n     disrupt the instance at all.\n\n\nBy default, the minimum action is NONE. If your update\nrequires a more disruptive action than you set with this flag, the\nnecessary action is performed to execute the update.",
          "enum": [
            "NONE",
            "REFRESH",
            "REPLACE",
            "RESTART"
          ]
        },
        "mostDisruptiveAllowedAction": {
          "enum": [
            "NONE",
            "REFRESH",
            "REPLACE",
            "RESTART"
          ],
          "enumDescriptions": [
            "Do not perform any action.",
            "Do not stop the instance.",
            "(Default.) Replace the instance according to the replacement method\noption.",
            "Stop the instance and start it again."
          ],
          "description": "The most disruptive action that you want to perform on each instance during\nthe update:\n   \n   \n     - REPLACE: Delete the instance and create it again.\n     - RESTART: Stop the instance and start it again.\n     - REFRESH: Do not stop the instance and limit disruption\n     as much as possible. \n   - NONE: Do not disrupt the\n     instance at all.\n\n\nBy default, the most disruptive allowed action is REPLACE. If\nyour update requires a more disruptive action than you set with this flag,\nthe update request will fail.",
          "type": "string"
        },
        "instances": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of URLs of one or more instances for which you want to apply\nupdates. Each URL can be a full URL or a partial URL, such aszones/[ZONE]/instances/[INSTANCE_NAME]."
        }
      },
      "type": "object",
      "description": "RegionInstanceGroupManagers.applyUpdatesToInstances"
    },
    "RouterMd5AuthenticationKey": {
      "id": "RouterMd5AuthenticationKey",
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "[Input only] Value of the key.\n\nFor patch and update calls, it can be skipped to\ncopy the value from the previous configuration. This is allowed if the\nkey with the same name existed before the operation. Maximum length is 80\ncharacters. Can only contain printable ASCII characters.",
          "annotations": {
            "required": [
              "compute.routers.insert"
            ]
          }
        },
        "name": {
          "type": "string",
          "description": "Name used to identify the key.\n\nMust be unique within a router. Must be referenced by exactly\none bgpPeer. Must comply withRFC1035.",
          "annotations": {
            "required": [
              "compute.routers.insert",
              "compute.routers.update"
            ]
          }
        }
      }
    },
    "SchedulingOnInstanceStopAction": {
      "description": "Defines the behaviour for instances with the instance_termination_actionSTOP.",
      "type": "object",
      "properties": {
        "discardLocalSsd": {
          "description": "If true, the contents of any attached Local SSD disks will be discarded\nelse, the Local SSD data will be preserved when the instance is stopped\nat the end of the run duration/termination time.",
          "type": "boolean"
        }
      },
      "id": "SchedulingOnInstanceStopAction"
    },
    "DiskAsyncReplicationList": {
      "type": "object",
      "id": "DiskAsyncReplicationList",
      "properties": {
        "asyncReplicationDisk": {
          "$ref": "DiskAsyncReplication"
        }
      }
    },
    "VmEndpointNatMappingsInterfaceNatMappings": {
      "properties": {
        "ruleMappings": {
          "type": "array",
          "items": {
            "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings"
          },
          "readOnly": true,
          "description": "Output only. Information about mappings provided by rules in this NAT."
        },
        "numTotalDrainNatPorts": {
          "format": "int32",
          "description": "Output only. Total number of drain ports across all NAT IPs allocated to this\ninterface. It equals to the aggregated port number in the field\ndrain_nat_ip_port_ranges.",
          "type": "integer",
          "readOnly": true
        },
        "sourceVirtualIp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Primary IP of the VM for this NIC."
        },
        "sourceAliasIpRange": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Alias IP range for this interface endpoint.\nIt will be a private (RFC 1918) IP range.\nExamples: \"10.33.4.55/32\", or \"192.168.5.0/24\"."
        },
        "drainNatIpPortRanges": {
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. List of all drain IP:port-range mappings assigned to this interface.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"]."
        },
        "natIpPortRanges": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. A list of all IP:port-range mappings assigned to this interface.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"]."
        },
        "numTotalNatPorts": {
          "type": "integer",
          "format": "int32",
          "readOnly": true,
          "description": "Output only. Total number of ports across all NAT IPs allocated to this interface.\nIt equals to the aggregated port number in the field nat_ip_port_ranges."
        }
      },
      "id": "VmEndpointNatMappingsInterfaceNatMappings",
      "description": "Contain information of Nat mapping for an interface of this endpoint.",
      "type": "object"
    },
    "SnapshotSettingsStorageLocationSettings": {
      "type": "object",
      "id": "SnapshotSettingsStorageLocationSettings",
      "properties": {
        "policy": {
          "type": "string",
          "enum": [
            "LOCAL_REGION",
            "NEAREST_MULTI_REGION",
            "SPECIFIC_LOCATIONS",
            "STORAGE_LOCATION_POLICY_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "Store snapshot in the same region as with the originating disk.\nNo additional parameters are needed.",
            "Store snapshot in the nearest multi region Cloud Storage bucket,\nrelative to the originating disk. No additional parameters are needed.",
            "Store snapshot in the specific locations, as specified by the user.\nThe list of regions to store must be defined under the `locations`\nfield.",
            ""
          ],
          "description": "The chosen location policy."
        },
        "locations": {
          "type": "object",
          "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored\nin the locations listed in this field. Keys are Cloud Storage bucket\nlocations. Only one location can be specified.",
          "additionalProperties": {
            "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference"
          }
        }
      }
    },
    "PreviewFeatureStatusReleaseStatus": {
      "properties": {
        "updateDate": {
          "readOnly": true,
          "$ref": "Date",
          "description": "Output only. The last date when a feature transitioned between ReleaseStatuses."
        },
        "stage": {
          "description": "Output only. [Output Only] The stage of the feature.",
          "enum": [
            "DEPRECATED",
            "GA",
            "PREVIEW",
            "STAGE_UNSPECIFIED"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "readOnly": true
        }
      },
      "id": "PreviewFeatureStatusReleaseStatus",
      "type": "object",
      "description": "[Output Only] The release status of the feature."
    },
    "WireGroupTopology": {
      "properties": {
        "endpoints": {
          "description": "Output only. Topology details for all endpoints in the wire group.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "WireGroupTopologyEndpoint"
          }
        }
      },
      "type": "object",
      "description": "Topology details for the wire group.",
      "id": "WireGroupTopology"
    },
    "BackendServiceLocalityLoadBalancingPolicyConfig": {
      "id": "BackendServiceLocalityLoadBalancingPolicyConfig",
      "description": "Container for either a built-in LB policy supported by gRPC or Envoy or\na custom one implemented by the end user.",
      "type": "object",
      "properties": {
        "policy": {
          "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy"
        },
        "customPolicy": {
          "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy"
        }
      }
    },
    "VpnGatewayStatusHighAvailabilityRequirementState": {
      "id": "VpnGatewayStatusHighAvailabilityRequirementState",
      "type": "object",
      "description": "Describes the high availability requirement state for the VPN connection\nbetween this Cloud VPN gateway and a peer gateway.",
      "properties": {
        "state": {
          "enumDescriptions": [
            "VPN tunnels are configured with adequate redundancy from Cloud VPN\ngateway to the peer VPN gateway. For both GCP-to-non-GCP and GCP-to-GCP\nconnections, the adequate redundancy is a pre-requirement for users to\nget 99.99% availability on GCP side; please note that for any\nconnection, end-to-end 99.99% availability is subject to proper\nconfiguration on the peer VPN gateway.",
            "VPN tunnels are not configured with adequate redundancy from the Cloud\nVPN gateway to the peer gateway"
          ],
          "type": "string",
          "enum": [
            "CONNECTION_REDUNDANCY_MET",
            "CONNECTION_REDUNDANCY_NOT_MET"
          ],
          "description": "Indicates the high availability requirement state for the VPN connection.\nValid values are CONNECTION_REDUNDANCY_MET,CONNECTION_REDUNDANCY_NOT_MET."
        },
        "unsatisfiedReason": {
          "enum": [
            "INCOMPLETE_TUNNELS_COVERAGE"
          ],
          "description": "Indicates the reason why the VPN connection does not meet the high\navailability redundancy criteria/requirement.\nValid values is INCOMPLETE_TUNNELS_COVERAGE.",
          "enumDescriptions": [
            ""
          ],
          "type": "string"
        }
      }
    },
    "NetworkPeeringConnectionStatusConsensusState": {
      "properties": {
        "deleteStatus": {
          "description": "The status of the delete request.",
          "enumDescriptions": [
            "Both network admins have agreed this consensus peering connection can\nbe deleted.",
            "",
            "The local network admin requested to cancel their delete request\nafter DELETE_ACKNOWLEDGED.",
            "Network admin has requested deletion of this peering connection.",
            "The peer network admin requested to cancel their delete request after\nDELETE_ACKNOWLEDGED.",
            "The peer network admin has requested deletion of this peering\nconnection."
          ],
          "enum": [
            "DELETE_ACKNOWLEDGED",
            "DELETE_STATUS_UNSPECIFIED",
            "LOCAL_CANCEL_REQUESTED",
            "LOCAL_DELETE_REQUESTED",
            "PEER_CANCEL_REQUESTED",
            "PEER_DELETE_REQUESTED"
          ],
          "type": "string"
        },
        "updateStatus": {
          "enum": [
            "IN_SYNC",
            "PENDING_LOCAL_ACKNOWLEDMENT",
            "PENDING_PEER_ACKNOWLEDGEMENT",
            "UPDATE_STATUS_UNSPECIFIED"
          ],
          "description": "The status of the update request.",
          "type": "string",
          "enumDescriptions": [
            "No pending configuration update proposals to the  peering connection.",
            "The peer network admin has made an updatePeering call. The change is\nawaiting acknowledgment from this peering's network admin.",
            "The local network admin has made an updatePeering call. The change\nis awaiting acknowledgment from the peer network admin.",
            ""
          ]
        }
      },
      "description": "The status of update/delete for a consensus peering connection. Only set\nwhen connection_status.update_strategy isCONSENSUS or a network peering is proposing to update the\nstrategy to CONSENSUS.",
      "id": "NetworkPeeringConnectionStatusConsensusState",
      "type": "object"
    },
    "BackendBucketParams": {
      "description": "Additional Backend Bucket parameters.",
      "type": "object",
      "id": "BackendBucketParams",
      "properties": {
        "resourceManagerTags": {
          "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "VpnTunnelAggregatedList": {
      "type": "object",
      "id": "VpnTunnelAggregatedList",
      "properties": {
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#vpnTunnelAggregatedList",
          "description": "Output only. [Output Only] Type of resource. Always compute#vpnTunnel for\nVPN tunnels."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "items": {
          "additionalProperties": {
            "description": "Name of the scope containing this set of VPN tunnels.",
            "$ref": "VpnTunnelsScopedList"
          },
          "description": "A list of VpnTunnelsScopedList resources.",
          "type": "object"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "type": "object"
        },
        "unreachables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true
        }
      }
    },
    "HealthCheckList": {
      "type": "object",
      "properties": {
        "kind": {
          "default": "compute#healthCheckList",
          "type": "string",
          "readOnly": true,
          "description": "Output only. Type of resource."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "items": {
          "type": "array",
          "description": "A list of HealthCheck resources.",
          "items": {
            "$ref": "HealthCheck"
          }
        },
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        }
      },
      "id": "HealthCheckList",
      "description": "Contains a list of HealthCheck resources."
    },
    "InterconnectAttachmentConfigurationConstraints": {
      "properties": {
        "bgpPeerAsnRanges": {
          "type": "array",
          "items": {
            "$ref": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange"
          },
          "description": "Output only. [Output Only] List of ASN ranges that the remote location is known to\nsupport. Formatted as an array of inclusive ranges {min: min-value, max:\nmax-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]\nallows the peer ASN to be 123 or anything in the range 64512-65534.\n\nThis field is only advisory. Although the API accepts other ranges, these\nare the ranges that we recommend.",
          "readOnly": true
        },
        "bgpMd5": {
          "readOnly": true,
          "type": "string",
          "enum": [
            "MD5_OPTIONAL",
            "MD5_REQUIRED",
            "MD5_UNSUPPORTED"
          ],
          "description": "Output only. [Output Only] Whether the attachment's BGP session\nrequires/allows/disallows BGP MD5 authentication. This can take one of\nthe following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED.\n\nFor example, a Cross-Cloud Interconnect connection to a remote cloud\nprovider that requires BGP MD5 authentication has the\ninterconnectRemoteLocation attachment_configuration_constraints.bgp_md5\nfield set to MD5_REQUIRED, and that property is propagated to the\nattachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is\nreturned if MD5 is requested.",
          "enumDescriptions": [
            "MD5_OPTIONAL: BGP MD5 authentication is supported and can optionally be\nconfigured.",
            "MD5_REQUIRED: BGP MD5 authentication must be configured.",
            "MD5_UNSUPPORTED: BGP MD5 authentication must not be configured"
          ]
        }
      },
      "type": "object",
      "id": "InterconnectAttachmentConfigurationConstraints"
    },
    "FutureReservationStoragePoolProperties": {
      "description": "Storage pool properties for the future reservation.",
      "id": "FutureReservationStoragePoolProperties",
      "type": "object",
      "properties": {
        "requestedExapoolProvisionedCapacityGb": {
          "description": "Requested exapool provisioned capacity in GiB.",
          "$ref": "StoragePoolExapoolProvisionedCapacityGb"
        },
        "storagePoolType": {
          "description": "Type of the storage pool.",
          "type": "string"
        },
        "requestedStoragePoolProvisionedCapacity": {
          "$ref": "FutureReservationStoragePoolProvisionedCapacity",
          "description": "Requested storage pool provisioned capacity."
        }
      }
    },
    "SslPoliciesScopedList": {
      "properties": {
        "sslPolicies": {
          "type": "array",
          "items": {
            "$ref": "SslPolicy"
          },
          "description": "A list of SslPolicies contained in this scope."
        },
        "warning": {
          "description": "Informational warning which replaces the list of\nSSL policies when the list is empty.",
          "type": "object",
          "properties": {
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "id": "SslPoliciesScopedList",
      "type": "object"
    },
    "SavedDisk": {
      "type": "object",
      "properties": {
        "sourceDisk": {
          "readOnly": true,
          "description": "Output only. Specifies a URL of the disk attached to the source instance.",
          "type": "string"
        },
        "architecture": {
          "enum": [
            "ARCHITECTURE_UNSPECIFIED",
            "ARM64",
            "X86_64"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value indicating Architecture is not set.",
            "Machines with architecture ARM64",
            "Machines with architecture X86_64"
          ],
          "readOnly": true,
          "description": "Output only. [Output Only] The architecture of the attached disk."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Always compute#savedDisk\nfor attached disks.",
          "default": "compute#savedDisk",
          "type": "string",
          "readOnly": true
        },
        "storageBytes": {
          "type": "string",
          "description": "Output only. [Output Only] Size of the individual disk snapshot used by this machine\nimage.",
          "format": "int64",
          "readOnly": true
        },
        "storageBytesStatus": {
          "enum": [
            "UPDATING",
            "UP_TO_DATE"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Output only. [Output Only] An indicator whether storageBytes is in a\nstable state or it is being adjusted as a result of shared storage\nreallocation. This status can either be UPDATING, meaning\nthe size of the snapshot is being updated, or UP_TO_DATE,\nmeaning the size of the snapshot is up-to-date.",
          "type": "string"
        }
      },
      "id": "SavedDisk",
      "description": "An instance-attached disk resource."
    },
    "InstanceGroupsListInstancesRequest": {
      "type": "object",
      "id": "InstanceGroupsListInstancesRequest",
      "properties": {
        "instanceState": {
          "enumDescriptions": [
            "Includes all instances in the generated list regardless of their state.",
            "Includes instances in the generated list only if they have a RUNNING\nstate."
          ],
          "type": "string",
          "description": "A filter for the state of the instances in the instance group. Valid\noptions are ALL or RUNNING. If you do not specify\nthis parameter the list includes all instances regardless of their state.",
          "enum": [
            "ALL",
            "RUNNING"
          ]
        }
      }
    },
    "InstantSnapshot": {
      "type": "object",
      "description": "Represents a InstantSnapshot resource.\n\nYou can use instant snapshots to create disk rollback points quickly..",
      "id": "InstantSnapshot",
      "properties": {
        "sourceDisk": {
          "description": "URL of the source disk used to create this instant snapshot.\nNote that the source disk must be in the same zone/region as the\ninstant snapshot to be created. This can be a full or valid partial URL.\nFor example, the following are valid values:\n   \n   \n     - \n       https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n     \n     - \n       https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n     \n     - \n       projects/project/zones/zone/disks/disk\n     \n     - \n       projects/project/regions/region/disks/disk\n     \n     - \n       zones/zone/disks/disk\n     \n     - \n       regions/region/disks/disk",
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the region where the instant snapshot resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "readOnly": true
        },
        "sourceInstantSnapshotGroup": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the source instant snapshot this instant snapshot is\npart of. Note that the source instant snapshot group must be in the same\nzone/region as the instant snapshot to be created. This can be a full or\nvalid partial URL.",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "InstantSnapshot creation is in progress.",
            "InstantSnapshot is currently being deleted.",
            "InstantSnapshot creation failed.",
            "InstantSnapshot has been created successfully.",
            "InstantSnapshot is currently unavailable and cannot be used for\nDisk restoration"
          ],
          "readOnly": true,
          "description": "Output only. [Output Only] The status of the instantSnapshot. This can beCREATING, DELETING, FAILED, orREADY.",
          "enum": [
            "CREATING",
            "DELETING",
            "FAILED",
            "READY",
            "UNAVAILABLE"
          ]
        },
        "labelFingerprint": {
          "description": "A fingerprint for the labels being applied to this InstantSnapshot, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a InstantSnapshot.",
          "type": "string",
          "format": "byte"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash."
        },
        "diskSizeGb": {
          "type": "string",
          "description": "Output only. [Output Only] Size of the source disk, specified in GB.",
          "readOnly": true,
          "format": "int64"
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "resourceStatus": {
          "description": "Output only. [Output Only] Status information for the instant snapshot resource.",
          "$ref": "InstantSnapshotResourceStatus",
          "readOnly": true
        },
        "sourceDiskId": {
          "description": "Output only. [Output Only] The ID value of the disk used to create this InstantSnapshot.\nThis value may be used to determine whether the InstantSnapshot\nwas taken from the current or a previous instance of a given disk name.",
          "readOnly": true,
          "type": "string"
        },
        "params": {
          "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "InstantSnapshotParams"
        },
        "satisfiesPzi": {
          "type": "boolean",
          "description": "Output only. Reserved for future use.",
          "readOnly": true
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#instantSnapshot for InstantSnapshot resources.",
          "default": "compute#instantSnapshot"
        },
        "sourceInstantSnapshotGroupId": {
          "description": "Output only. [Output Only] The ID value of the source instant snapshot group this\nInstantSnapshot is part of. This value may be used to determine whether the\nInstantSnapshot was created as part of an InstantSnapshotGroup creation.",
          "type": "string",
          "readOnly": true
        },
        "satisfiesPzs": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. [Output Only] Reserved for future use."
        },
        "id": {
          "readOnly": true,
          "format": "uint64",
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "zone": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the zone where the instant snapshot resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "architecture": {
          "type": "string",
          "enumDescriptions": [
            "Default value indicating Architecture is not set.",
            "Machines with architecture ARM64",
            "Machines with architecture X86_64"
          ],
          "description": "Output only. [Output Only] The architecture of the instant snapshot. Valid values are\nARM64 or X86_64.",
          "enum": [
            "ARCHITECTURE_UNSPECIFIED",
            "ARM64",
            "X86_64"
          ],
          "readOnly": true
        },
        "selfLinkWithId": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.",
          "type": "string"
        },
        "labels": {
          "type": "object",
          "description": "Labels to apply to this InstantSnapshot. These can be later modified by\nthe setLabels method.\nLabel values may be empty.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        }
      }
    },
    "ResourceStatusShutdownDetails": {
      "type": "object",
      "properties": {
        "stopState": {
          "type": "string",
          "enumDescriptions": [
            "The instance is gracefully shutting down.",
            "The instance is stopping."
          ],
          "description": "Current stopping state of the instance.",
          "enum": [
            "PENDING_STOP",
            "STOPPING"
          ]
        },
        "targetState": {
          "enum": [
            "DELETED",
            "STOPPED"
          ],
          "description": "Target instance state.",
          "enumDescriptions": [
            "The instance will be deleted.",
            "The instance will be stopped."
          ],
          "type": "string"
        },
        "maxDuration": {
          "description": "The duration for graceful shutdown. Only applicable when\n`stop_state=PENDING_STOP`.",
          "$ref": "Duration"
        },
        "requestTimestamp": {
          "description": "Past timestamp indicating the beginning of current `stopState` in RFC3339 text format.",
          "type": "string"
        }
      },
      "description": "Specifies if the instance is in `PENDING_STOP` state or there is a\nprogrammed stop scheduled.",
      "id": "ResourceStatusShutdownDetails"
    },
    "TargetVpnGatewayParams": {
      "type": "object",
      "properties": {
        "resourceManagerTags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n  {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid."
        }
      },
      "id": "TargetVpnGatewayParams"
    },
    "Binding": {
      "description": "Associates `members`, or principals, with a `role`.",
      "type": "object",
      "id": "Binding",
      "properties": {
        "condition": {
          "$ref": "Expr",
          "description": "The condition that is associated with this binding.\n\nIf the condition evaluates to `true`, then this binding applies to the\ncurrent request.\n\nIf the condition evaluates to `false`, then this binding does not apply to\nthe current request. However, a different role binding might grant the same\nrole to one or more of the principals in this binding.\n\nTo learn which resources support conditions in their IAM policies, see the\n[IAM\ndocumentation](https://cloud.google.com/iam/help/conditions/resource-policies)."
        },
        "members": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Specifies the principals requesting access for a Google Cloud resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n   Does not include identities that come from external identity providers\n   (IdPs) through identity federation.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@example.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a Google\n   service account. For example,\n   `my-other-app@appspot.gserviceaccount.com`.\n\n* `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An\n   identifier for a\n   [Kubernetes service\n   account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).\n   For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n\n\n\n* `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`:\n  A single identity in a workforce identity pool.\n\n* `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`:\n  All workforce identities in a group.\n\n* `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`:\n  All workforce identities with a specific attribute value.\n\n* `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`:\n  All identities in a workforce identity pool.\n\n* `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`:\n  A single identity in a workload identity pool.\n\n* `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`:\n  A workload identity pool group.\n\n* `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`:\n  All identities in a workload identity pool with a certain attribute.\n\n* `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`:\n  All identities in a workload identity pool.\n\n* `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique\n   identifier) representing a user that has been recently deleted. For\n   example, `alice@example.com?uid=123456789012345678901`. If the user is\n   recovered, this value reverts to `user:{emailid}` and the recovered user\n   retains the role in the binding.\n\n* `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus\n   unique identifier) representing a service account that has been recently\n   deleted. For example,\n   `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.\n   If the service account is undeleted, this value reverts to\n   `serviceAccount:{emailid}` and the undeleted service account retains the\n   role in the binding.\n\n* `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique\n   identifier) representing a Google group that has been recently\n   deleted. For example, `admins@example.com?uid=123456789012345678901`. If\n   the group is recovered, this value reverts to `group:{emailid}` and the\n   recovered group retains the role in the binding.\n\n* `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`:\n  Deleted single identity in a workforce identity pool. For example,\n  `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`."
        },
        "role": {
          "type": "string",
          "description": "Role that is assigned to the list of `members`, or principals.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\n\nFor an overview of the IAM roles and permissions, see the\n[IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For\na list of the available pre-defined roles, see\n[here](https://cloud.google.com/iam/docs/understanding-roles)."
        }
      }
    },
    "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": {
      "type": "object",
      "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "ABANDONED",
            "DONE",
            "FAILED",
            "PROPAGATED",
            "PROPAGATING",
            "UNSPECIFIED"
          ],
          "enumDescriptions": [
            "Operation not tracked in this location e.g. zone is marked as DOWN.",
            "Operation has completed successfully.",
            "Operation is in an error state.",
            "Operation is confirmed to be in the location.",
            "Operation is not yet confirmed to have been created in the location.",
            ""
          ],
          "description": "[Output Only] Status of the action, which can be one of the following:\n`PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`."
        },
        "error": {
          "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is\npopulated.",
          "$ref": "Status"
        }
      }
    },
    "RequestMirrorPolicy": {
      "type": "object",
      "properties": {
        "backendService": {
          "description": "The full or partial URL to the BackendService resource being\nmirrored to.\n\nThe backend service configured for a mirroring\npolicy must reference backends that are of the same type as the original\nbackend service matched in the URL map.\n\nServerless NEG backends are not currently supported as a mirrored\nbackend service.",
          "type": "string"
        },
        "mirrorPercent": {
          "format": "double",
          "type": "number",
          "description": "The percentage of requests to be mirrored to `backend_service`."
        }
      },
      "id": "RequestMirrorPolicy",
      "description": "A policy that specifies how requests intended for the route's backends\nare shadowed to a separate mirrored backend service. The load balancer\ndoesn't wait for responses from the shadow service. Before sending traffic\nto the shadow service, the host or authority header is suffixed with-shadow."
    },
    "NatIpInfo": {
      "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).",
      "properties": {
        "natIpInfoMappings": {
          "description": "Output only. A list of all NAT IPs assigned to this NAT config.",
          "items": {
            "$ref": "NatIpInfoNatIpInfoMapping"
          },
          "readOnly": true,
          "type": "array"
        },
        "natName": {
          "readOnly": true,
          "description": "Output only. Name of the NAT config which the NAT IP belongs to.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "NatIpInfo"
    },
    "FirewallPolicyRuleMatcher": {
      "description": "Represents a match condition that incoming traffic is evaluated against.\nExactly one field must be specified.",
      "id": "FirewallPolicyRuleMatcher",
      "type": "object",
      "properties": {
        "destIpRanges": {
          "items": {
            "type": "string"
          },
          "description": "CIDR IP address range.\nMaximum number of destination CIDR IP ranges allowed is 5000.",
          "type": "array"
        },
        "srcThreatIntelligences": {
          "items": {
            "type": "string"
          },
          "description": "Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.",
          "type": "array"
        },
        "destRegionCodes": {
          "type": "array",
          "description": "Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of dest region codes allowed is 5000.",
          "items": {
            "type": "string"
          }
        },
        "destNetworkType": {
          "type": "string",
          "description": "Network type of the traffic destination. Allowed values are:\n   \n   \n     - UNSPECIFIED\n     - INTERNET\n     - NON_INTERNET",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "INTERNET",
            "INTRA_VPC",
            "NON_INTERNET",
            "UNSPECIFIED",
            "VPC_NETWORKS"
          ]
        },
        "srcFqdns": {
          "items": {
            "type": "string"
          },
          "description": "Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source.\nMaximum number of source fqdn allowed is 100.",
          "type": "array"
        },
        "destNetworkContext": {
          "description": "Network context of the traffic destination. Allowed values are:\n   \n   \n     - UNSPECIFIED\n     - INTERNET\n     - NON_INTERNET",
          "enum": [
            "INTERNET",
            "INTRA_VPC",
            "NON_INTERNET",
            "UNSPECIFIED",
            "VPC_NETWORKS"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "destThreatIntelligences": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination."
        },
        "destAddressGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10."
        },
        "srcIpRanges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "CIDR IP address range.\nMaximum number of source CIDR IP ranges allowed is 5000."
        },
        "srcNetworks": {
          "description": "Networks of the traffic source. It can be either a full or partial url.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "layer4Configs": {
          "items": {
            "$ref": "FirewallPolicyRuleMatcherLayer4Config"
          },
          "type": "array",
          "description": "Pairs of IP protocols and ports that the rule should match."
        },
        "srcAddressGroups": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10."
        },
        "srcNetworkType": {
          "description": "Network type of the traffic source. Allowed values are:\n   \n   \n     - UNSPECIFIED\n     - INTERNET\n     - INTRA_VPC\n     - NON_INTERNET\n     - VPC_NETWORKS",
          "enum": [
            "INTERNET",
            "INTRA_VPC",
            "NON_INTERNET",
            "UNSPECIFIED",
            "VPC_NETWORKS"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ]
        },
        "srcRegionCodes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000."
        },
        "srcNetworkContext": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "description": "Network context of the traffic source. Allowed values are:\n   \n   \n     - UNSPECIFIED\n     - INTERNET\n     - INTRA_VPC\n     - NON_INTERNET\n     - VPC_NETWORKS",
          "enum": [
            "INTERNET",
            "INTRA_VPC",
            "NON_INTERNET",
            "UNSPECIFIED",
            "VPC_NETWORKS"
          ]
        },
        "srcSecureTags": {
          "description": "List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the srcSecureTag are INEFFECTIVE,\nand there is no srcIpRange, this rule will be ignored.\nMaximum number of source tag values allowed is 256.",
          "items": {
            "$ref": "FirewallPolicyRuleSecureTag"
          },
          "type": "array"
        },
        "destFqdns": {
          "type": "array",
          "description": "Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination.\nMaximum number of destination fqdn allowed is 100.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "InstanceGroupsAddInstancesRequest": {
      "id": "InstanceGroupsAddInstancesRequest",
      "type": "object",
      "properties": {
        "instances": {
          "type": "array",
          "items": {
            "$ref": "InstanceReference"
          },
          "description": "The list of instances to add to the instance group."
        }
      }
    },
    "AutoscalingPolicyLoadBalancingUtilization": {
      "type": "object",
      "id": "AutoscalingPolicyLoadBalancingUtilization",
      "description": "Configuration parameters of autoscaling based on load balancing.",
      "properties": {
        "utilizationTarget": {
          "format": "double",
          "description": "Fraction of backend capacity utilization (set in HTTP(S) load balancing\nconfiguration) that the autoscaler maintains. Must be a positive float\nvalue. If not defined, the default is 0.8.",
          "type": "number"
        }
      }
    },
    "RegionInstanceGroupManagersResumeInstancesRequest": {
      "type": "object",
      "id": "RegionInstanceGroupManagersResumeInstancesRequest",
      "properties": {
        "instances": {
          "description": "The URLs of one or more instances to resume. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RouterList": {
      "id": "RouterList",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "description": "A list of Router resources.",
          "type": "array",
          "items": {
            "$ref": "Router"
          }
        },
        "kind": {
          "default": "compute#routerList",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Always compute#router for\nrouters.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message."
        }
      },
      "description": "Contains a list of Router resources."
    },
    "InstantSnapshotList": {
      "id": "InstantSnapshotList",
      "properties": {
        "kind": {
          "description": "Output only. Type of resource.",
          "readOnly": true,
          "default": "compute#instantSnapshotList",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "items": {
          "description": "A list of InstantSnapshot resources.",
          "type": "array",
          "items": {
            "$ref": "InstantSnapshot"
          }
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          }
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      },
      "description": "Contains a list of InstantSnapshot resources.",
      "type": "object"
    },
    "RouterBgp": {
      "type": "object",
      "properties": {
        "identifierRange": {
          "description": "Explicitly specifies a range of valid BGP Identifiers for this Router. It\nis provided as a link-local IPv4 range (from 169.254.0.0/16), of size at\nleast /30, even if the BGP sessions are over IPv6. It must not overlap\nwith any IPv4 BGP session ranges.\n\n\nOther vendors commonly call this \"router ID\".",
          "type": "string"
        },
        "advertisedGroups": {
          "type": "array",
          "description": "User-specified list of prefix groups to advertise in custom mode.\nThis field can only be populated if advertise_mode is CUSTOM and\nis advertised to all peers of the router.\nThese groups will be advertised in addition to any specified prefixes.\nLeave this field blank to advertise no custom groups.",
          "items": {
            "enumDescriptions": [
              "Advertise all available subnets (including peer VPC subnets)."
            ],
            "type": "string",
            "enum": [
              "ALL_SUBNETS"
            ]
          }
        },
        "keepaliveInterval": {
          "description": "The interval in seconds between BGP keepalive messages that are\nsent to the peer.\n\n\nHold time is three times the interval at which keepalive messages are\nsent, and the hold time is the maximum number of seconds allowed to\nelapse between successive keepalive messages that BGP receives from a\npeer.\n\n\nBGP will use the smaller of either the local hold time value or the\npeer's hold time value as the hold time for the BGP connection between\nthe two peers.\n\n\nIf set, this value must be between 20 and 60. The default is 20.",
          "type": "integer",
          "format": "uint32"
        },
        "asn": {
          "description": "Local BGP Autonomous System Number (ASN).\nMust be anRFC6996 private ASN, either 16-bit or 32-bit. The\nvalue will be fixed for this router resource. All VPN tunnels that link\nto this router will have the same local ASN.",
          "format": "uint32",
          "type": "integer"
        },
        "advertiseMode": {
          "type": "string",
          "enum": [
            "CUSTOM",
            "DEFAULT"
          ],
          "description": "User-specified flag to indicate which mode to use for advertisement.\nThe options are DEFAULT or CUSTOM.",
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "advertisedIpRanges": {
          "description": "User-specified list of individual IP ranges to advertise in custom mode.\nThis field can only be populated if advertise_mode is CUSTOM and\nis advertised to all peers of the router.\nThese IP ranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.",
          "items": {
            "$ref": "RouterAdvertisedIpRange"
          },
          "type": "array"
        }
      },
      "id": "RouterBgp"
    },
    "TargetPoolInstanceHealth": {
      "type": "object",
      "id": "TargetPoolInstanceHealth",
      "properties": {
        "healthStatus": {
          "type": "array",
          "items": {
            "$ref": "HealthStatus"
          }
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#targetPoolInstanceHealth",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetPoolInstanceHealth when checking the health of\nan instance."
        }
      }
    },
    "RegionInstanceGroupManagersListInstancesResponse": {
      "properties": {
        "managedInstances": {
          "items": {
            "$ref": "ManagedInstance"
          },
          "type": "array",
          "description": "A list of managed instances."
        },
        "nextPageToken": {
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "RegionInstanceGroupManagersListInstancesResponse",
      "type": "object"
    },
    "CachePolicyCacheKeyPolicy": {
      "id": "CachePolicyCacheKeyPolicy",
      "type": "object",
      "properties": {
        "includeHost": {
          "description": "If true, requests to different hosts will be cached separately.\n\nNote: This setting is only applicable to routes that use a Backend\nService. It does not affect requests served by a Backend Bucket, as the\nhost is never included in a Backend Bucket's cache key. Attempting to set\nit on a route that points exclusively to Backend Buckets will result in a\nconfiguration error.",
          "type": "boolean"
        },
        "includedCookieNames": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Allows HTTP cookies (by name) to be used in the cache key.\nThe name=value pair will be used in the cache key Cloud CDN generates.\n\nNote: This setting is only applicable to routes that use a Backend\nService. It does not affect requests served by a Backend Bucket.\nAttempting to set it on a route that points exclusively to Backend\nBuckets will result in a configuration error. Up to 5 cookie names can be\nspecified."
        },
        "includeProtocol": {
          "description": "If true, http and https requests will be cached separately.\n\nNote: This setting is only applicable to routes that use a Backend\nService. It does not affect requests served by a Backend Bucket, as the\nprotocol is never included in a Backend Bucket's cache key. Attempting to\nset on a route that points exclusively to Backend Buckets will result in\na configuration error.",
          "type": "boolean"
        },
        "excludedQueryParameters": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Names of query string parameters to exclude in cache keys. All other\nparameters will be included. Either specify `excludedQueryParameters`\nor `includedQueryParameters`, not both. '&' and '=' will be percent\nencoded and not treated as delimiters.\n\nNote: This field applies to routes that use backend services. Attempting\nto set it on a route that points exclusively to Backend Buckets will\nresult in a configuration error. For routes that point to a Backend\nBucket, use `includedQueryParameters` to define which parameters should\nbe part of the cache key."
        },
        "includeQueryString": {
          "type": "boolean",
          "description": "If true, include query string parameters in the cache key according to\n`includedQueryParameters` and `excludedQueryParameters`. If neither\nis set, the entire query string will be included. If false, the query\nstring will be excluded from the cache key entirely.\n\nNote: This field applies to routes that use backend services. Attempting\nto set it on a route that points exclusively to Backend Buckets will\nresult in a configuration error. For routes that point to a Backend\nBucket, use `includedQueryParameters` to define which parameters should\nbe part of the cache key."
        },
        "includedQueryParameters": {
          "description": "Names of query string parameters to include in cache keys. All other\nparameters will be excluded. Either specify `includedQueryParameters`\nor `excludedQueryParameters`, not both. '&' and '=' will be percent\nencoded and not treated as delimiters.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "includedHeaderNames": {
          "description": "Allows HTTP request headers (by name) to be used in the cache key.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Message containing what to include in the cache key for a request for Cache\nPolicy defined on Route Action."
    },
    "ServiceAttachmentList": {
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "data": {
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            }
          }
        },
        "items": {
          "description": "A list of ServiceAttachment resources.",
          "type": "array",
          "items": {
            "$ref": "ServiceAttachment"
          }
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#serviceAttachment for service attachments.",
          "readOnly": true,
          "default": "compute#serviceAttachmentList"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        }
      },
      "type": "object",
      "id": "ServiceAttachmentList"
    },
    "InstanceGroupManagerStatusInstanceStatusSummary": {
      "description": "The list of instance statuses and the number of instances in this managed\ninstance group that have the status. For more information about how to\ninterpret each status check the instance lifecycle documentation.\nCurrently only shown for TPU MIGs.",
      "type": "object",
      "id": "InstanceGroupManagerStatusInstanceStatusSummary",
      "properties": {
        "repairing": {
          "description": "Output only. The number of instances in the managed instance group\nthat have REPAIRING status.",
          "type": "integer",
          "readOnly": true,
          "format": "int32"
        },
        "running": {
          "type": "integer",
          "description": "Output only. The number of instances in the managed instance group\nthat have RUNNING status.",
          "format": "int32",
          "readOnly": true
        },
        "deprovisioning": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. The number of instances in the managed instance group\nthat have DEPROVISIONING status."
        },
        "pendingStop": {
          "format": "int32",
          "readOnly": true,
          "description": "Output only. The number of instances in the managed instance group\nthat have PENDING_STOP status.",
          "type": "integer"
        },
        "staging": {
          "format": "int32",
          "readOnly": true,
          "type": "integer",
          "description": "Output only. The number of instances in the managed instance group\nthat have STAGING status."
        },
        "stopping": {
          "format": "int32",
          "description": "Output only. The number of instances in the managed instance group\nthat have STOPPING status.",
          "readOnly": true,
          "type": "integer"
        },
        "suspending": {
          "type": "integer",
          "format": "int32",
          "description": "Output only. The number of instances in the managed instance group\nthat have SUSPENDING status.",
          "readOnly": true
        },
        "nonExistent": {
          "readOnly": true,
          "description": "Output only. The number of instances that have not been created yet or\nhave been deleted. Includes only instances that would be shown in the\nlistManagedInstances method and not all instances that have been\ndeleted in the lifetime of the MIG.\nDoes not include FlexStart instances that are waiting for the resources\navailability, they are considered as 'pending'.",
          "type": "integer",
          "format": "int32"
        },
        "suspended": {
          "description": "Output only. The number of instances in the managed instance group\nthat have SUSPENDED status.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "pending": {
          "readOnly": true,
          "format": "int32",
          "type": "integer",
          "description": "Output only. The number of instances in the managed instance group\nthat have PENDING status, that is FlexStart instances that are waiting\nfor resources. Instances that do not exist because of the other reasons\nare counted as 'non_existent'."
        },
        "provisioning": {
          "format": "int32",
          "type": "integer",
          "description": "Output only. The number of instances in the managed instance group\nthat have PROVISIONING status.",
          "readOnly": true
        },
        "stopped": {
          "type": "integer",
          "description": "Output only. The number of instances in the managed instance group\nthat have STOPPED status.",
          "readOnly": true,
          "format": "int32"
        },
        "terminated": {
          "description": "Output only. The number of instances in the managed instance group\nthat have TERMINATED status.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "SecurityPoliciesAggregatedList": {
      "properties": {
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "etag": {
          "type": "string"
        },
        "items": {
          "type": "object",
          "description": "A list of SecurityPoliciesScopedList resources.",
          "additionalProperties": {
            "description": "Name of the scope containing this set of security policies.",
            "$ref": "SecurityPoliciesScopedList"
          }
        },
        "unreachables": {
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "kind": {
          "default": "compute#securityPoliciesAggregatedList",
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#securityPolicyAggregatedList for lists of Security\nPolicies.",
          "readOnly": true
        }
      },
      "id": "SecurityPoliciesAggregatedList",
      "type": "object"
    },
    "ResourcePolicyAggregatedList": {
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          }
        },
        "etag": {
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#resourcePolicyAggregatedList",
          "description": "Output only. Type of resource."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "items": {
          "type": "object",
          "description": "A list of ResourcePolicy resources.",
          "additionalProperties": {
            "$ref": "ResourcePoliciesScopedList",
            "description": "Name of the scope containing this set of resourcePolicies."
          }
        }
      },
      "description": "Contains a list of resourcePolicies.",
      "type": "object",
      "id": "ResourcePolicyAggregatedList"
    },
    "GlobalVmExtensionPolicyList": {
      "type": "object",
      "id": "GlobalVmExtensionPolicyList",
      "description": "Response to list global VM extension policy resources.",
      "properties": {
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          },
          "type": "object"
        },
        "etag": {
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "GlobalVmExtensionPolicy"
          },
          "type": "array",
          "description": "A list of GlobalVmExtensionPolicy resources."
        },
        "kind": {
          "type": "string",
          "description": "Output only. Type of resource.",
          "default": "compute#globalVmExtensionPolicyList",
          "readOnly": true
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      }
    },
    "StatefulPolicyPreservedState": {
      "id": "StatefulPolicyPreservedState",
      "description": "Configuration of preserved resources.",
      "type": "object",
      "properties": {
        "disks": {
          "additionalProperties": {
            "$ref": "StatefulPolicyPreservedStateDiskDevice"
          },
          "type": "object",
          "description": "Disks created on the instances that will be preserved on instance\ndelete, update, etc. This map is keyed with the device names of\nthe disks."
        },
        "externalIPs": {
          "type": "object",
          "description": "External network IPs assigned to the instances that will be preserved on\ninstance delete, update, etc. This map is keyed with the network\ninterface name.",
          "additionalProperties": {
            "$ref": "StatefulPolicyPreservedStateNetworkIp"
          }
        },
        "internalIPs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "StatefulPolicyPreservedStateNetworkIp"
          },
          "description": "Internal network IPs assigned to the instances that will be preserved on\ninstance delete, update, etc. This map is keyed with the network\ninterface name."
        }
      }
    },
    "ForwardingRuleAggregatedList": {
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array"
        },
        "items": {
          "description": "A list of ForwardingRulesScopedList resources.",
          "additionalProperties": {
            "$ref": "ForwardingRulesScopedList",
            "description": "Name of the scope containing this set of addresses."
          },
          "type": "object"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "kind": {
          "type": "string",
          "default": "compute#forwardingRuleAggregatedList",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#forwardingRuleAggregatedList for lists of forwarding rules."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          }
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "ForwardingRuleAggregatedList"
    },
    "PacketMirroringFilter": {
      "id": "PacketMirroringFilter",
      "type": "object",
      "properties": {
        "cidrRanges": {
          "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filters on the source\n(ingress) or destination (egress) IP in the IP header. If no ranges are\nspecified, all IPv4 traffic that matches the specified IPProtocols is\nmirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4\ntraffic is mirrored. To mirror all IPv4 and IPv6 traffic, use\n\"0.0.0.0/0,::/0\".",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "direction": {
          "enum": [
            "BOTH",
            "EGRESS",
            "INGRESS"
          ],
          "description": "Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH.\nThe default is BOTH.",
          "type": "string",
          "enumDescriptions": [
            "Default, both directions are mirrored.",
            "Only egress traffic is mirrored.",
            "Only ingress traffic is mirrored."
          ]
        },
        "IPProtocols": {
          "description": "Protocols that apply as filter on mirrored traffic.\nIf no protocols are specified, all traffic that matches the specified\nCIDR ranges is mirrored.\nIf neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is\nmirrored.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CompositeHealthChecksGetHealthResponseHealthSourceHealth": {
      "id": "CompositeHealthChecksGetHealthResponseHealthSourceHealth",
      "properties": {
        "healthState": {
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "HEALTHY",
            "UNHEALTHY",
            "UNKNOWN"
          ],
          "description": "Health state of the associated HealthSource resource.",
          "type": "string"
        },
        "source": {
          "description": "Fully qualified URL of the associated HealthSource resource.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RouterAdvertisedIpRange": {
      "type": "object",
      "description": "Description-tagged IP ranges for the router to advertise.",
      "properties": {
        "description": {
          "description": "User-specified description for the IP range.",
          "type": "string"
        },
        "range": {
          "description": "The IP range to advertise. The value must be a CIDR-formatted string.",
          "type": "string"
        }
      },
      "id": "RouterAdvertisedIpRange"
    },
    "InterconnectAttachmentsScopedList": {
      "properties": {
        "warning": {
          "type": "object",
          "description": "Informational warning which replaces the list of addresses when\nthe list is empty.",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          }
        },
        "interconnectAttachments": {
          "description": "A list of interconnect attachments contained in this scope.",
          "items": {
            "$ref": "InterconnectAttachment"
          },
          "type": "array"
        }
      },
      "id": "InterconnectAttachmentsScopedList",
      "type": "object"
    },
    "HttpRetryPolicy": {
      "id": "HttpRetryPolicy",
      "properties": {
        "numRetries": {
          "format": "uint32",
          "type": "integer",
          "description": "Specifies the allowed number retries. This number must be \u003e 0.\nIf not specified, defaults to 1."
        },
        "perTryTimeout": {
          "description": "Specifies a non-zero timeout per retry attempt.\n\nIf not specified, will use the timeout set in theHttpRouteAction field.\nIf timeout in the HttpRouteAction field is not set, this field\nuses the largest timeout\namong all backend services associated with the route.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas the validateForProxyless field set to true.",
          "$ref": "Duration"
        },
        "retryConditions": {
          "items": {
            "type": "string"
          },
          "description": "Specifies one or more conditions when this retry policy applies. Valid\nvalues are:\n   \n   - 5xx: retry is attempted if the instance or endpoint\n   responds with any 5xx response code, or if the instance or\n   endpoint does not respond at all. For example, disconnects, reset, read\n   timeout, connection failure, and refused streams.\n   - gateway-error: Similar to 5xx, but only\n   applies to response codes 502, 503 or504.\n   - connect-failure: a retry is attempted on failures\n   connecting to the instance or endpoint. For example, connection\n   timeouts.\n   - retriable-4xx: a retry is attempted if the instance\n   or endpoint responds with a 4xx response code.\n   The only error that you can retry is error code 409.\n   - refused-stream: a retry is attempted if the instance\n   or endpoint resets the stream with a REFUSED_STREAM error\n   code. This reset type indicates that it is safe to retry.\n   - cancelled: a retry is attempted if the gRPC status\n   code in the response header is set to cancelled.\n   - deadline-exceeded: a retry is attempted if the gRPC\n   status code in the response header is set todeadline-exceeded.\n   - internal: a retry is attempted if the gRPC\n   status code in the response header is set tointernal.\n   - resource-exhausted: a retry is attempted if the gRPC\n   status code in the response header is set toresource-exhausted.\n   - unavailable: a retry is attempted if the gRPC\n   status code in the response header is set tounavailable.\n\nOnly the following codes are supported when the URL map is bound to\ntarget gRPC proxy that has validateForProxyless field set to true.\n   \n   - cancelled\n   - deadline-exceeded\n   - internal\n   - resource-exhausted\n   - unavailable",
          "type": "array"
        }
      },
      "type": "object",
      "description": "The retry policy associates with HttpRouteRule"
    },
    "RolloutPlanWaveValidation": {
      "properties": {
        "timeBasedValidationMetadata": {
          "$ref": "RolloutPlanWaveValidationTimeBasedValidationMetadata",
          "description": "Optional. Metadata required if type = \"time\"."
        },
        "type": {
          "description": "Required. The type of the validation. If a type of validation is associated with\na metadata object, the appropriate metadata field mapping to the\nvalidation type must be provided in the validation message. Possible\nvalues are in quotes below alongside an explanation:\n  \"manual\": The system waits for an end-user approval API before\n    progressing to the next wave.\n  \"time\": The system waits for a user specified duration before\n    progressing to the next wave. TimeBasedValidation must be provided.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "The validation to be performed before progressing to the next wave.",
      "id": "RolloutPlanWaveValidation"
    },
    "RegionInstanceGroupManagerResizeRequestsListResponse": {
      "type": "object",
      "id": "RegionInstanceGroupManagerResizeRequestsListResponse",
      "properties": {
        "etag": {
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Unique identifier for the resource; defined by the server."
        },
        "items": {
          "items": {
            "$ref": "InstanceGroupManagerResizeRequest"
          },
          "description": "A list of Resize Request resources.",
          "type": "array"
        },
        "warning": {
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object",
          "readOnly": true,
          "description": "Output only. Informational warning message."
        },
        "unreachables": {
          "readOnly": true,
          "description": "Output only. Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "type": "string",
          "default": "compute#regionInstanceGroupManagerResizeRequestList",
          "readOnly": true,
          "description": "Output only. Type of the resource. Alwayscompute#regionInstanceGroupManagerResizeRequestList for\na list of Resize Requests."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. Server-defined URL for this resource.",
          "readOnly": true
        }
      }
    },
    "ReservationSubBlocksGetResponse": {
      "properties": {
        "resource": {
          "$ref": "ReservationSubBlock"
        }
      },
      "id": "ReservationSubBlocksGetResponse",
      "type": "object"
    },
    "InterconnectGroupsGetOperationalStatusResponse": {
      "description": "Response for the InterconnectGroupsGetOperationalStatusResponse.",
      "type": "object",
      "id": "InterconnectGroupsGetOperationalStatusResponse",
      "properties": {
        "result": {
          "$ref": "InterconnectGroupsOperationalStatus"
        },
        "etag": {
          "type": "string"
        }
      }
    },
    "XpnResourceId": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "PROJECT",
            "XPN_RESOURCE_TYPE_UNSPECIFIED"
          ],
          "description": "The type of the service resource."
        },
        "id": {
          "type": "string",
          "description": "The ID of the service resource. In the case of projects, this field\nsupports project id (e.g., my-project-123) and project number\n(e.g. 12345678)."
        }
      },
      "type": "object",
      "id": "XpnResourceId",
      "description": "Service resource (a.k.a service project) ID."
    },
    "HealthCheckService": {
      "id": "HealthCheckService",
      "type": "object",
      "description": "Represents a Health-Check as a Service resource.",
      "properties": {
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource. The name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character\nmust be a lowercase letter, and all following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be a\ndash."
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "networkEndpointGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of URLs to the NetworkEndpointGroup\nresources. Must not have more than 100.  For regionalHealthCheckService, NEGs must be in\nzones in the region of the HealthCheckService. For globalHealthCheckServices, the NetworkEndpointGroups\nmust be global INTERNET_IP_PORT."
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output only] Type of the resource. Alwayscompute#healthCheckServicefor health check services.",
          "default": "compute#healthCheckService"
        },
        "fingerprint": {
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a HealthCheckService. An up-to-date fingerprint must\nbe provided in order to patch/update the HealthCheckService; Otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nHealthCheckService.",
          "type": "string",
          "format": "byte"
        },
        "region": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] URL of the region where the health check service\nresides. This field is not applicable to global health check services.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body."
        },
        "healthStatusAggregationPolicy": {
          "enum": [
            "AND",
            "NO_AGGREGATION"
          ],
          "enumDescriptions": [
            "If any backend's health check reports UNHEALTHY,\nthen UNHEALTHY is the HealthState of\nthe entire health check service. If all backend's are healthy,\nthe HealthState of the health check service isHEALTHY.",
            "An EndpointHealth message is returned for each\nbackend in the health check service."
          ],
          "type": "string",
          "description": "Optional. Policy for how the results from multiple health checks\nfor the same endpoint are aggregated. Defaults to NO_AGGREGATION\nif unspecified.\n   \n   - NO_AGGREGATION. An EndpointHealth message is\n   returned for each  pair in the health check\n   service.\n   - AND. If any health check of an endpoint reportsUNHEALTHY, then UNHEALTHY is theHealthState of the endpoint. If all health checks reportHEALTHY, the HealthState of the endpoint isHEALTHY.\n\n.\nThis is only allowed with regional HealthCheckService."
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "notificationEndpoints": {
          "description": "A list of URLs to the NotificationEndpoint\nresources. Must not have more than 10.  A list of endpoints for\nreceiving notifications of change in health status. For regionalHealthCheckService,NotificationEndpoint must be regional and in the\nsame region. For global HealthCheckService,NotificationEndpoint must be global.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "healthChecks": {
          "description": "A list of URLs to the HealthCheck resources. Must have\nat least one HealthCheck, and not more than 10 for regionalHealthCheckService, and not more than 1 for globalHealthCheckService.HealthCheck resources must haveportSpecification=USE_SERVING_PORT orportSpecification=USE_FIXED_PORT. For\nregional HealthCheckService, theHealthCheck must be regional and in the same\nregion. For global HealthCheckService,HealthCheck must be global. Mix of regional and globalHealthChecks is not supported. Multiple regionalHealthChecks must belong to the same region. RegionalHealthChecks must belong to the same region as zones ofNetworkEndpointGroups. For globalHealthCheckService using globalINTERNET_IP_PORT NetworkEndpointGroups, the\nglobal HealthChecks must specify sourceRegions,\nand HealthChecks that specify sourceRegions can\nonly be used with global INTERNET_IP_PORTNetworkEndpointGroups.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        }
      }
    },
    "NodeGroup": {
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true,
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "name": {
          "type": "string",
          "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "CREATING",
            "DELETING",
            "INVALID",
            "READY"
          ],
          "readOnly": true
        },
        "size": {
          "readOnly": true,
          "type": "integer",
          "description": "Output only. [Output Only] The total number of nodes in the node group.",
          "format": "int32"
        },
        "locationHint": {
          "description": "An opaque location hint used to place the Node close to other\nresources.\nThis field is for use by internal tools that use the public API.\nThe location hint here on the NodeGroup overrides any location_hint\npresent in the NodeTemplate.",
          "type": "string"
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "type": "string",
          "readOnly": true
        },
        "nodeTemplate": {
          "type": "string",
          "description": "URL of the node template to create the node group from."
        },
        "zone": {
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the zone where the node group resides,\nsuch as us-central1-a.",
          "type": "string"
        },
        "shareSettings": {
          "description": "Share-settings for the node group",
          "$ref": "ShareSettings"
        },
        "fingerprint": {
          "type": "string",
          "format": "byte"
        },
        "maintenanceInterval": {
          "enumDescriptions": [
            "VMs are eligible to receive infrastructure and hypervisor updates as they\nbecome available.  This may result in more maintenance operations (live\nmigrations or terminations) for the VM than the PERIODIC andRECURRENT options.",
            "VMs receive infrastructure and hypervisor updates on a periodic basis,\nminimizing the number of maintenance operations (live migrations or\nterminations) on an individual VM.  This may mean a VM will take longer\nto receive an update than if it was configured forAS_NEEDED.  Security updates will still be applied as soon\nas they are available. RECURRENT is used for GEN3 and Slice\nof Hardware VMs."
          ],
          "enum": [
            "AS_NEEDED",
            "RECURRENT"
          ],
          "description": "Specifies the frequency of planned maintenance events. The accepted values\nare: `AS_NEEDED` and `RECURRENT`.",
          "type": "string"
        },
        "autoscalingPolicy": {
          "$ref": "NodeGroupAutoscalingPolicy",
          "description": "Specifies how autoscaling should behave."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#nodeGroup",
          "type": "string",
          "description": "Output only. [Output Only] The type of the resource. Alwayscompute#nodeGroup for node group."
        },
        "maintenanceWindow": {
          "$ref": "NodeGroupMaintenanceWindow"
        },
        "maintenancePolicy": {
          "enum": [
            "DEFAULT",
            "MAINTENANCE_POLICY_UNSPECIFIED",
            "MIGRATE_WITHIN_NODE_GROUP",
            "RESTART_IN_PLACE"
          ],
          "type": "string",
          "description": "Specifies how to handle instances when a node in the group undergoes\nmaintenance. Set to one of: DEFAULT,RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP.\nThe default value is DEFAULT. For more information, see\nMaintenance policies.",
          "enumDescriptions": [
            "Allow the node and corresponding instances to retain default\nmaintenance behavior.",
            "",
            "When maintenance must be done on a node, the instances on that node will\nbe moved to other nodes in the group.\nInstances with onHostMaintenance = MIGRATE will live migrate to their\ndestinations while instances with onHostMaintenance = TERMINATE will\nterminate and then restart on their destination nodes if\nautomaticRestart = true.",
            "Instances in this group will restart on the same node when maintenance\nhas completed. Instances must have onHostMaintenance = TERMINATE, and\nthey will only restart if automaticRestart = true."
          ]
        }
      },
      "id": "NodeGroup",
      "description": "Represents a sole-tenant Node Group resource.\n\nA sole-tenant node is a physical server that is dedicated to\nhosting VM instances only for your specific project. Use sole-tenant nodes to\nkeep your instances physically separated from instances in other projects, or\nto group your instances together on the same host hardware. For more\ninformation, readSole-tenant nodes.",
      "type": "object"
    },
    "NetworkEdgeSecurityService": {
      "properties": {
        "region": {
          "description": "Output only. [Output Only] URL of the region where the resource resides. You must\nspecify this field as part of the HTTP request URL. It is not settable as a\nfield in the request body.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "fingerprint": {
          "type": "string",
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be\nprovided in order to update the NetworkEdgeSecurityService,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a NetworkEdgeSecurityService.",
          "format": "byte"
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#networkEdgeSecurityService",
          "description": "Output only. [Output only] Type of the resource. Alwayscompute#networkEdgeSecurityService for\nNetworkEdgeSecurityServices"
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "selfLinkWithId": {
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.",
          "readOnly": true,
          "type": "string"
        },
        "securityPolicy": {
          "description": "The resource URL for the network edge security service associated with this\nnetwork edge security service.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "type": "string"
        }
      },
      "description": "Represents a Google Cloud Armor network edge security service resource.",
      "id": "NetworkEdgeSecurityService",
      "type": "object"
    },
    "ResourceCommitment": {
      "type": "object",
      "properties": {
        "amount": {
          "description": "The quantity of the hardware resource that you want to commit to purchasing\n(in a type-dependent unit).\n   \n   - For vCPUs, you must specify an integer value.\n   - For memory, you specify the amount of MB that you want. The value you\n   specify must be a multiple of 256 MB, with up to 6.5 GB of\n   memory per every vCPU.\n   - For GPUs, you must specify an integer value.\n   - For Local SSD disks, you must specify the amount in GB. The size of a\n   single Local SSD disk is 375 GB.",
          "type": "string",
          "format": "int64"
        },
        "type": {
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "ACCELERATOR",
            "LOCAL_SSD",
            "MEMORY",
            "UNSPECIFIED",
            "VCPU"
          ],
          "description": "The type of hardware resource that you want to specify.\nYou can specify any of the following values:\n   \n   - VCPU\n   - MEMORY\n   - LOCAL_SSD\n   - ACCELERATOR\n\n\n\nSpecify as a separate entry in the list for each\nindividual resource type.",
          "type": "string"
        },
        "acceleratorType": {
          "description": "Name of the accelerator type or GPU resource. Specify this field only when\nthe type of hardware resource is ACCELERATOR.",
          "type": "string"
        }
      },
      "description": "Commitment for a particular hardware resource (a commitment is composed of\none or more of these).",
      "id": "ResourceCommitment"
    },
    "HttpHeaderAction": {
      "description": "The request and response header transformations that take effect before\nthe request is passed along to the selected backendService.",
      "id": "HttpHeaderAction",
      "type": "object",
      "properties": {
        "responseHeadersToRemove": {
          "description": "A list of header names for headers that need to be removed from the\nresponse before sending the response back to the client.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requestHeadersToAdd": {
          "description": "Headers to add to a matching request before forwarding the request to thebackendService.",
          "items": {
            "$ref": "HttpHeaderOption"
          },
          "type": "array"
        },
        "requestHeadersToRemove": {
          "items": {
            "type": "string"
          },
          "description": "A list of header names for headers that need to be removed from the\nrequest before forwarding the request to the backendService.",
          "type": "array"
        },
        "responseHeadersToAdd": {
          "description": "Headers to add the response before sending the response back to the\nclient.",
          "items": {
            "$ref": "HttpHeaderOption"
          },
          "type": "array"
        }
      }
    },
    "AllocationAggregateReservationReservedResourceInfo": {
      "id": "AllocationAggregateReservationReservedResourceInfo",
      "type": "object",
      "properties": {
        "accelerator": {
          "$ref": "AllocationAggregateReservationReservedResourceInfoAccelerator",
          "description": "Properties of accelerator resources in this reservation."
        }
      }
    },
    "TargetHttpsProxyList": {
      "id": "TargetHttpsProxyList",
      "type": "object",
      "properties": {
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "items": {
          "type": "array",
          "description": "A list of TargetHttpsProxy resources.",
          "items": {
            "$ref": "TargetHttpsProxy"
          }
        },
        "kind": {
          "description": "Output only. Type of resource. Always compute#targetHttpsProxyList for\nlists of target HTTPS proxies.",
          "default": "compute#targetHttpsProxyList",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        }
      },
      "description": "Contains a list of TargetHttpsProxy resources."
    },
    "SourceDiskEncryptionKey": {
      "type": "object",
      "properties": {
        "sourceDisk": {
          "type": "string",
          "description": "URL of the disk attached to the source instance. This can be a full or\nvalid partial URL. For example, the following are valid values:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk \n   - projects/project/zones/zone/disks/disk \n   - zones/zone/disks/disk"
        },
        "diskEncryptionKey": {
          "description": "Thecustomer-supplied\nencryption key of the source disk. Required if the source disk is\nprotected by a customer-supplied encryption key.",
          "$ref": "CustomerEncryptionKey"
        }
      },
      "id": "SourceDiskEncryptionKey"
    },
    "InstancePropertiesPatch": {
      "properties": {
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The label key-value pairs that you want to patch onto the instance.",
          "type": "object"
        },
        "metadata": {
          "type": "object",
          "description": "The metadata key-value pairs that you want to patch onto the instance. For\nmore information, see Project and\ninstance metadata.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "exposeHostTopology": {
          "type": "boolean",
          "description": "This optional flag exposes the hashed physical host ID."
        }
      },
      "id": "InstancePropertiesPatch",
      "description": "Represents the change that you want to make to the instance properties.",
      "type": "object"
    },
    "PathRule": {
      "description": "A path-matching rule for a URL. If matched, will use the specifiedBackendService to handle the traffic arriving at this URL.",
      "id": "PathRule",
      "properties": {
        "paths": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The list of path patterns to match. Each must start with /\nand the only place a * is allowed is at the end following\na /.  The string fed to the path matcher does not include\nany text after the first ? or #, and\nthose chars are not allowed here."
        },
        "urlRedirect": {
          "description": "When a path pattern is matched, the request is redirected to a URL\nspecified by urlRedirect.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.\n\n\nNot supported when the URL map is bound to a target gRPC proxy.",
          "$ref": "HttpRedirectAction"
        },
        "service": {
          "description": "The full or partial URL of the backend service resource to which traffic\nis directed if this rule is matched. If routeAction is\nalso specified, advanced routing actions, such as URL rewrites,\ntake effect before sending the request to the backend.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.",
          "type": "string"
        },
        "routeAction": {
          "$ref": "HttpRouteAction",
          "description": "In response to a matching path, the load balancer\nperforms advanced routing actions, such as URL rewrites and header\ntransformations, before forwarding the request to the selected\nbackend.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.\n\n\nURL maps for classic Application Load Balancers only support\nthe urlRewrite action within a path rule'srouteAction."
        },
        "customErrorResponsePolicy": {
          "description": "customErrorResponsePolicy specifies how the Load\nBalancer returns error responses when BackendServiceorBackendBucket responds with an error. \n\nIf a policy for an\nerror code is not configured for the PathRule, a policy for\nthe error code configured inpathMatcher.defaultCustomErrorResponsePolicy is applied. If\none is not specified inpathMatcher.defaultCustomErrorResponsePolicy, the policy\nconfigured in UrlMap.defaultCustomErrorResponsePolicy takes\neffect. \n\nFor example, consider a UrlMap with the following configuration:\n   \n   \n     - UrlMap.defaultCustomErrorResponsePolicy are configured\n     with policies for 5xx and 4xx errors\n     - A PathRule for /coming_soon/ is configured for the error\n     code 404.\n\nIf the request is for www.myotherdomain.com and a404 is encountered, the policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 response is encountered for the requestwww.example.com/current_events/, the pathMatcher's policy\ntakes effect. If however, the request forwww.example.com/coming_soon/ encounters a 404,\nthe policy in PathRule.customErrorResponsePolicy takes\neffect. If any of the requests in this example encounter a 500\nerror code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes effect.\n\ncustomErrorResponsePolicy is supported only for\nglobal external Application Load Balancers.",
          "$ref": "CustomErrorResponsePolicy"
        }
      },
      "type": "object"
    },
    "BackendServiceConnectionTrackingPolicy": {
      "description": "Connection Tracking configuration for this BackendService.",
      "properties": {
        "idleTimeoutSec": {
          "description": "Specifies how long to keep a Connection Tracking entry while there is no\nmatching traffic (in seconds).\n\nFor internal passthrough Network Load Balancers:\n   \n   - The minimum (default) is 10 minutes and the maximum is 16 hours.\n   - It can be set only if Connection Tracking is less than 5-tuple\n   (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION,CLIENT_IP or CLIENT_IP_PROTO, and Tracking\n   Mode is PER_SESSION).\n\n\n\nFor external passthrough Network Load Balancers the default is 60\nseconds. This option is not available publicly.",
          "format": "int32",
          "type": "integer"
        },
        "trackingMode": {
          "type": "string",
          "description": "Specifies the key used for connection tracking. There are two\noptions:\n   \n   - PER_CONNECTION: This is the default mode. The Connection\n   Tracking is performed as per the Connection Key (default Hash Method) for\n   the specific protocol.\n   - PER_SESSION: The Connection Tracking is performed as per\n   the configured Session Affinity. It matches the configured Session\n   Affinity.\n\n\n\nFor more details, see [Tracking Mode for Network Load\nBalancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode)\nand [Tracking Mode for Internal TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode).",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "INVALID_TRACKING_MODE",
            "PER_CONNECTION",
            "PER_SESSION"
          ]
        },
        "connectionPersistenceOnUnhealthyBackends": {
          "description": "Specifies connection persistence when backends are unhealthy. The default\nvalue is DEFAULT_FOR_PROTOCOL.\n\nIf set to DEFAULT_FOR_PROTOCOL, the existing connections\npersist on unhealthy backends only for connection-oriented protocols\n(TCP and SCTP) and only if the Tracking Mode isPER_CONNECTION (default tracking mode) or the Session\nAffinity is configured for 5-tuple. They do not persist forUDP.\n\nIf set to NEVER_PERSIST, after a backend becomes unhealthy,\nthe existing connections on the unhealthy backend are never persisted on\nthe unhealthy backend. They are always diverted to newly selected healthy\nbackends (unless all backends are unhealthy).\n\nIf set to ALWAYS_PERSIST, existing connections always\npersist on unhealthy backends regardless of protocol and session\naffinity. It is generally not recommended to use this mode overriding the\ndefault.\n\nFor more details, see [Connection Persistence for Network Load\nBalancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence)\nand [Connection Persistence for Internal TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence).",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "ALWAYS_PERSIST",
            "DEFAULT_FOR_PROTOCOL",
            "NEVER_PERSIST"
          ]
        },
        "enableStrongAffinity": {
          "description": "Enable Strong Session Affinity for external passthrough Network Load\nBalancers. This option is not available publicly.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "BackendServiceConnectionTrackingPolicy"
    },
    "TargetGrpcProxyList": {
      "properties": {
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetGrpcProxy for target grpc proxies.",
          "type": "string",
          "default": "compute#targetGrpcProxyList"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "TargetGrpcProxy"
          },
          "description": "A list of TargetGrpcProxy resources."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "id": "TargetGrpcProxyList",
      "type": "object"
    },
    "NetworkAttachmentsScopedList": {
      "type": "object",
      "properties": {
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            }
          },
          "description": "Informational warning which replaces the list of\nnetwork attachments when the list is empty."
        },
        "networkAttachments": {
          "type": "array",
          "description": "A list of NetworkAttachments contained in this scope.",
          "items": {
            "$ref": "NetworkAttachment"
          }
        }
      },
      "id": "NetworkAttachmentsScopedList"
    },
    "NotificationEndpointsScopedList": {
      "id": "NotificationEndpointsScopedList",
      "properties": {
        "resources": {
          "description": "A list of NotificationEndpoints contained in this scope.",
          "type": "array",
          "items": {
            "$ref": "NotificationEndpoint"
          }
        },
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "description": "Informational warning which replaces the list of\nnotification endpoints when the list is empty."
        }
      },
      "type": "object"
    },
    "ResourcePolicyWeeklyCycle": {
      "id": "ResourcePolicyWeeklyCycle",
      "properties": {
        "dayOfWeeks": {
          "items": {
            "$ref": "ResourcePolicyWeeklyCycleDayOfWeek"
          },
          "type": "array",
          "description": "Up to 7 intervals/windows, one for each day of the week."
        }
      },
      "description": "Time window specified for weekly operations.",
      "type": "object"
    },
    "NetworkEndpointGroupCloudRun": {
      "description": "Configuration for a Cloud Run network endpoint group (NEG).\nThe service must be provided explicitly or in the URL mask.\nThe tag is optional, may be provided explicitly or in the URL\nmask.\n\nNote: Cloud Run service must be in the same project and located in the same\nregion as the Serverless NEG.",
      "type": "object",
      "id": "NetworkEndpointGroupCloudRun",
      "properties": {
        "service": {
          "type": "string",
          "description": "Cloud Run service is the main resource of Cloud Run.\n\nThe service must be 1-63 characters long, and comply withRFC1035.\n\nExample value: \"run-service\"."
        },
        "tag": {
          "description": "Optional Cloud Run tag represents the \"named-revision\" to provide additional\nfine-grained traffic routing information.\n\nThe tag must be 1-63 characters long, and comply withRFC1035.\n\nExample value: \"revision-0010\".",
          "type": "string"
        },
        "urlMask": {
          "description": "An URL\nmask is one of the main components of the Cloud Function.\n\nA template to parse \u003cservice\u003e and\u003ctag\u003e fields from a request URL. URL mask allows for\nrouting to multiple Run services without having to create multiple\nnetwork endpoint groups and backend services.\n\nFor example, request URLs foo1.domain.com/bar1 andfoo1.domain.com/bar2 can be backed by the same Serverless\nNetwork Endpoint Group (NEG) with URL mask\u003ctag\u003e.domain.com/\u003cservice\u003e. The URL mask will\nparse them to { service=\"bar1\", tag=\"foo1\" } and {\nservice=\"bar2\", tag=\"foo2\" } respectively.",
          "type": "string"
        }
      }
    },
    "GlobalNetworkEndpointGroupsAttachEndpointsRequest": {
      "properties": {
        "networkEndpoints": {
          "type": "array",
          "items": {
            "$ref": "NetworkEndpoint"
          },
          "description": "The list of network endpoints to be attached."
        }
      },
      "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest",
      "type": "object"
    },
    "GetHealthOperationMetadataHealthInfo": {
      "properties": {
        "healthStatus": {
          "type": "string",
          "description": "Output only. The health status.",
          "readOnly": true,
          "enumDescriptions": [
            "The reservation slot is healthy.",
            "The reservation slot is unhealthy.",
            "Unspecified health status."
          ],
          "enum": [
            "HEALTH_STATUS_HEALTHY",
            "HEALTH_STATUS_UNHEALTHY",
            "HEALTH_STATUS_UNSPECIFIED"
          ]
        },
        "repairCategory": {
          "type": "string",
          "enumDescriptions": [
            "The repair is because of critical failures, that are scoped outside\nemergent maintenance",
            "The repair is because of an emergent maintenance",
            "The repair is because of a planned maintenance",
            "Unspecified repair category.",
            "The repair is because of a user reported fault"
          ],
          "description": "Output only. The repair category.",
          "enum": [
            "REPAIR_CATEGORY_CRITICAL_FAILURE",
            "REPAIR_CATEGORY_EMERGENT_MAINTENANCE",
            "REPAIR_CATEGORY_PLANNED_MAINTENANCE",
            "REPAIR_CATEGORY_UNSPECIFIED",
            "REPAIR_CATEGORY_USER_REPORTED_FAULT"
          ],
          "readOnly": true
        },
        "updateTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The time when health info was updated.",
          "readOnly": true
        },
        "unhealthyReason": {
          "description": "Output only. The reason for unhealthy status.",
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNHEALTHY_REASON_PENDING_USER_APPROVAL",
            "UNHEALTHY_REASON_REPAIRING",
            "UNHEALTHY_REASON_UNSCHEDULABLE",
            "UNHEALTHY_REASON_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "The slot is unhealthy because there is a pending repair, waiting for\ncustomer approval",
            "The slot is unhealthy because repair is in progress",
            "The slot is unhealthy because a vm cannot be scheduled on it, and no\nrepairs are running on the slot",
            "Unspecified unhealthy reason."
          ]
        },
        "availabilitySloStatus": {
          "readOnly": true,
          "description": "Output only. The availability SLO status.",
          "type": "string",
          "enumDescriptions": [
            "The slot availability is in SLO.",
            "The slot availability is out of SLO.",
            "The slot availability is unknown.",
            "Unspecified availability SLO status."
          ],
          "enum": [
            "AVAILABILITY_SLO_STATUS_IN_SLO",
            "AVAILABILITY_SLO_STATUS_OUT_OF_SLO",
            "AVAILABILITY_SLO_STATUS_SLO_UNKNOWN",
            "AVAILABILITY_SLO_STATUS_UNSPECIFIED"
          ]
        }
      },
      "id": "GetHealthOperationMetadataHealthInfo",
      "description": "Health information.",
      "type": "object"
    },
    "FutureResourcesRecommendationOtherLocation": {
      "type": "object",
      "description": "Information about recommendation status for locations\nthat were allowed but not used by the response.",
      "id": "FutureResourcesRecommendationOtherLocation",
      "properties": {
        "status": {
          "enum": [
            "CONDITIONS_NOT_MET",
            "NOT_SUPPORTED",
            "NO_CAPACITY",
            "OTHER_LOCATION_STATUS_UNDEFINED",
            "RECOMMENDED"
          ],
          "enumDescriptions": [
            "The requested resources are offered in this location\nbut the requested time window is does not meet the required conditions.",
            "The requested resources are not offered in this location.\nRetrying the request will not change this status.",
            "The requested resources are offered in this location\nand the requested time window is accepted\nbut there is no capacity within the requested time window.",
            "Default value, unused.",
            "The requested resources are offered in this location\nand it is possible to request them. However, another location\nwas better and was recommended."
          ],
          "type": "string",
          "description": "Status of recommendation in this location."
        },
        "details": {
          "type": "string",
          "description": "Details (human readable) describing the situation.\nFor example, if status is CONDITION_NOT_MET, then\ndetails contain information about the parameters of the time window\nthat did not meet the required conditions."
        }
      }
    },
    "PreviewFeatureRolloutOperation": {
      "properties": {
        "rolloutInput": {
          "description": "Input only. The input for the rollout operation.",
          "$ref": "PreviewFeatureRolloutOperationRolloutInput"
        }
      },
      "id": "PreviewFeatureRolloutOperation",
      "description": "Represents the rollout operation",
      "type": "object"
    },
    "NetworkProfileNetworkFeaturesPredefinedSubnetworkRange": {
      "id": "NetworkProfileNetworkFeaturesPredefinedSubnetworkRange",
      "properties": {
        "namePrefix": {
          "type": "string",
          "description": "The naming prefix of the predefined subnetwork."
        },
        "ipv6Range": {
          "description": "The IPv6 range of the predefined subnetwork.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RegionTargetHttpsProxiesSetSslCertificatesRequest": {
      "properties": {
        "sslCertificates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "New set of SslCertificate resources to associate\nwith this TargetHttpsProxy resource."
        }
      },
      "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest",
      "type": "object"
    },
    "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": {
      "type": "object",
      "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse",
      "properties": {
        "firewalls": {
          "type": "array",
          "description": "Effective firewalls on the network.",
          "items": {
            "$ref": "Firewall"
          }
        },
        "firewallPolicys": {
          "description": "Output only. [Output only] Effective firewalls from firewall policy. It applies to\nRegional Network Firewall Policies in the specified region, Global Network\nFirewall Policies and Hierachial Firewall Policies which are associated\nwith the network.",
          "readOnly": true,
          "items": {
            "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy"
          },
          "type": "array"
        }
      }
    },
    "InterconnectAttachment": {
      "id": "InterconnectAttachment",
      "properties": {
        "description": {
          "description": "An optional description of this resource.",
          "type": "string"
        },
        "adminEnabled": {
          "description": "Determines whether this Attachment will carry packets.\nNot present for PARTNER_PROVIDER.",
          "type": "boolean"
        },
        "partnerMetadata": {
          "description": "Informational metadata about Partner attachments from Partners to display\nto customers.\nOutput only for PARTNER type, mutable for PARTNER_PROVIDER, not\navailable for DEDICATED.",
          "$ref": "InterconnectAttachmentPartnerMetadata"
        },
        "kind": {
          "type": "string",
          "default": "compute#interconnectAttachment",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#interconnectAttachment for interconnect attachments.",
          "readOnly": true
        },
        "partnerAsn": {
          "type": "string",
          "format": "int64",
          "description": "Optional BGP ASN for the router supplied by a Layer 3 Partner if they\nconfigured BGP on behalf of the customer.\nOutput only for PARTNER type, input only for PARTNER_PROVIDER, not\navailable for DEDICATED."
        },
        "candidateCloudRouterIpv6Address": {
          "description": "Single IPv6 address + prefix length to be configured on the cloud router\ninterface for this interconnect attachment.\n   \n   - Both candidate_cloud_router_ipv6_address and\n   candidate_customer_router_ipv6_address fields must be set or both must be\n   unset.\n   - Prefix length of both candidate_cloud_router_ipv6_address and\n   candidate_customer_router_ipv6_address must be the same.\n   - Max prefix length is 126.",
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "Output only. [Output Only] The current state of this attachment's functionality.\nEnum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,\nPARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values\nPENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used\nfor only PARTNER and PARTNER_PROVIDER interconnect attachments.\nThis state can take one of the following values:\n   \n   - ACTIVE: The attachment has been turned up and is ready to use.\n   - UNPROVISIONED: The attachment is not ready to use yet, because turnup\n   is not complete.\n   - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet\n   been configured on the Partner side.\n   - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of\n   provisioning after a PARTNER_PROVIDER attachment was created that\n   references it. \n   - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER\n   attachment that is waiting for a customer to activate it. \n   - DEFUNCT:\n   The attachment was deleted externally and is no longer functional. This\n   could be because the associated Interconnect was removed, or because the\n   other side of a Partner attachment was deleted.",
          "readOnly": true,
          "enumDescriptions": [
            "Indicates that attachment has been turned up and is ready to use.",
            "The attachment was deleted externally and is no longer functional.\nThis could be because the associated Interconnect was wiped out,\nor because the other side of a Partner attachment was deleted.",
            "A PARTNER attachment is in the process of provisioning after a\nPARTNER_PROVIDER attachment was created that references it.",
            "PARTNER or PARTNER_PROVIDER attachment that is waiting for the customer\nto activate.",
            "A newly created PARTNER attachment that has not yet been configured on\nthe Partner side.",
            "",
            "Indicates that attachment is not ready to use yet, because turnup is not\ncomplete."
          ],
          "enum": [
            "ACTIVE",
            "DEFUNCT",
            "PARTNER_REQUEST_RECEIVED",
            "PENDING_CUSTOMER",
            "PENDING_PARTNER",
            "STATE_UNSPECIFIED",
            "UNPROVISIONED"
          ]
        },
        "type": {
          "description": "The type of interconnect attachment this is, which can take one of the\nfollowing values:\n   \n   - DEDICATED: an attachment to a Dedicated Interconnect.\n   - PARTNER: an attachment to a Partner Interconnect, created by the\n   customer.\n   - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by\n   the partner.\n\n- L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.",
          "type": "string",
          "enumDescriptions": [
            "Attachment to a dedicated interconnect.",
            "Attachment to a dedicated interconnect, forwarding L2 packets.",
            "Attachment to a partner interconnect, created by the customer.",
            "Attachment to a partner interconnect, created by the partner."
          ],
          "enum": [
            "DEDICATED",
            "L2_DEDICATED",
            "PARTNER",
            "PARTNER_PROVIDER"
          ]
        },
        "edgeAvailabilityDomain": {
          "enum": [
            "AVAILABILITY_DOMAIN_1",
            "AVAILABILITY_DOMAIN_2",
            "AVAILABILITY_DOMAIN_ANY"
          ],
          "type": "string",
          "description": "Input only. Desired availability domain for the attachment. Only available for type\nPARTNER, at creation time, and can take one of the following values:\n   \n   - AVAILABILITY_DOMAIN_ANY\n   - AVAILABILITY_DOMAIN_1\n   - AVAILABILITY_DOMAIN_2\n\n\nFor improved reliability, customers should configure a pair of attachments,\none per availability domain. The selected availability domain will be\nprovided to the Partner via the pairing key, so that the provisioned\ncircuit will lie in the specified domain. If not specified, the value will\ndefault to AVAILABILITY_DOMAIN_ANY.",
          "enumDescriptions": [
            "",
            "",
            ""
          ]
        },
        "pairingKey": {
          "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not\npresent for DEDICATED].\nThe opaque identifier of a PARTNER attachment used to initiate\nprovisioning with a selected partner.\nOf the form \"XXXXX/region/domain\"",
          "type": "string"
        },
        "params": {
          "$ref": "InterconnectAttachmentParams",
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload."
        },
        "mtu": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum Transmission Unit (MTU), in bytes, of packets passing through this\ninterconnect attachment.\nValid values are 1440, 1460, 1500, and 8896. If not specified,\nthe value will default to 1440."
        },
        "subnetLength": {
          "format": "int32",
          "type": "integer",
          "description": "Input only. Length of the IPv4 subnet mask.\nAllowed values:\n   \n   \n    - 29 (default)\n    - 30\n\nThe default value is 29, except for Cross-Cloud Interconnect\nconnections that use an InterconnectRemoteLocation with a\nconstraints.subnetLengthRange.min equal to 30. For example,\nconnections that use an Azure remote location fall into this\ncategory. In these cases, the default value is 30, and requesting\n29 returns an error.\n\nWhere both 29 and 30 are allowed, 29 is preferred, because it gives\nGoogle Cloud Support more debugging visibility."
        },
        "bandwidth": {
          "description": "Provisioned bandwidth capacity for the interconnect attachment. For\nattachments of type DEDICATED, the user can set the bandwidth.\nFor attachments of type PARTNER, the Google Partner that is operating\nthe interconnect must set the bandwidth.\nOutput only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,\nand can take one of the following values:\n   \n   - BPS_50M: 50 Mbit/s\n   - BPS_100M: 100 Mbit/s\n   - BPS_200M: 200 Mbit/s\n   - BPS_300M: 300 Mbit/s\n   - BPS_400M: 400 Mbit/s\n   - BPS_500M: 500 Mbit/s\n   - BPS_1G: 1 Gbit/s\n   - BPS_2G: 2 Gbit/s\n   - BPS_5G: 5 Gbit/s\n   - BPS_10G: 10 Gbit/s\n   - BPS_20G: 20 Gbit/s\n   - BPS_50G: 50 Gbit/s\n   - BPS_100G: 100 Gbit/s\n   - BPS_400G: 400 Gbit/s",
          "enum": [
            "BPS_100G",
            "BPS_100M",
            "BPS_10G",
            "BPS_1G",
            "BPS_200M",
            "BPS_20G",
            "BPS_2G",
            "BPS_300M",
            "BPS_400G",
            "BPS_400M",
            "BPS_500M",
            "BPS_50G",
            "BPS_50M",
            "BPS_5G"
          ],
          "type": "string",
          "enumDescriptions": [
            "100 Gbit/s",
            "100 Mbit/s",
            "10 Gbit/s",
            "1 Gbit/s",
            "200 Mbit/s",
            "20 Gbit/s",
            "2 Gbit/s",
            "300 Mbit/s",
            "400 Gbit/s",
            "400 Mbit/s",
            "500 Mbit/s",
            "50 Gbit/s",
            "50 Mbit/s",
            "5 Gbit/s"
          ]
        },
        "l2Forwarding": {
          "$ref": "InterconnectAttachmentL2Forwarding",
          "description": "L2 Interconnect Attachment related config. This field is required if the\ntype is L2_DEDICATED.\n\nThe configuration specifies how VLAN tags (like dot1q, qinq, or dot1ad)\nwithin L2 packets are mapped to the destination appliances IP addresses.\nThe packet is then encapsulated with the appliance IP address and sent to\nthe edge appliance."
        },
        "stackType": {
          "description": "The stack type for this interconnect attachment to identify whether the\nIPv6 feature is enabled or not. If not specified, IPV4_ONLY\nwill be used.\n\nThis field can be both set at interconnect attachments creation and\nupdate interconnect attachment operations.",
          "type": "string",
          "enum": [
            "IPV4_IPV6",
            "IPV4_ONLY"
          ],
          "enumDescriptions": [
            "The interconnect attachment can have both IPv4 and IPv6 addresses.",
            "The interconnect attachment will only be assigned IPv4 addresses."
          ]
        },
        "configurationConstraints": {
          "description": "Output only. [Output Only] Constraints for this attachment, if any. The attachment does\nnot work if these constraints are not met.",
          "readOnly": true,
          "$ref": "InterconnectAttachmentConfigurationConstraints"
        },
        "cloudRouterIpv6InterfaceId": {
          "type": "string",
          "description": "This field is not available."
        },
        "satisfiesPzs": {
          "description": "Output only. [Output Only] Reserved for future use.",
          "readOnly": true,
          "type": "boolean"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty."
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "candidateIpv6Subnets": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "This field is not available."
        },
        "candidateCloudRouterIpAddress": {
          "description": "Single IPv4 address + prefix length to be configured on the cloud router\ninterface for this interconnect attachment.\n   \n   - Both candidate_cloud_router_ip_address and\n   candidate_customer_router_ip_address fields must be set or both must be\n   unset.\n   - Prefix length of both candidate_cloud_router_ip_address and\n   candidate_customer_router_ip_address must be the same.\n   - Max prefix length is 31.",
          "type": "string"
        },
        "name": {
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "region": {
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the regional interconnect attachment\nresides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "type": "string"
        },
        "customerRouterIpv6Address": {
          "readOnly": true,
          "description": "Output only. [Output Only] IPv6 address + prefix length to be configured on the\ncustomer router subinterface for this interconnect attachment.",
          "type": "string"
        },
        "labelFingerprint": {
          "description": "A fingerprint for the labels being applied to this InterconnectAttachment,\nwhich is essentially a hash of the labels set used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an InterconnectAttachment.",
          "format": "byte",
          "type": "string"
        },
        "ipsecInternalAddresses": {
          "description": "A list of URLs of addresses that have been reserved for the VLAN\nattachment. Used only for the VLAN attachment that has the encryption\noption as IPSEC. The addresses must be regional internal IP address ranges.\nWhen creating an HA VPN gateway over the VLAN attachment, if the attachment\nis configured to use a regional internal IP address, then the VPN gateway's\nIP address is allocated from the IP address range specified here. For\nexample, if the HA VPN gateway's interface 0 is paired to this VLAN\nattachment, then a regional internal IP address for the VPN gateway\ninterface 0 will be allocated from the IP address specified for this\nVLAN attachment.\nIf this field is not specified when creating the VLAN attachment, then\nlater on when creating an HA VPN gateway on this VLAN attachment, the HA\nVPN gateway's IP address is allocated from the regional external IP address\npool.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "router": {
          "description": "URL of the Cloud Router to be used for dynamic routing. This router must be\nin the same region as this InterconnectAttachment. The\nInterconnectAttachment will automatically connect the Interconnect to the\nnetwork & region within which the Cloud Router is configured.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "candidateCustomerRouterIpAddress": {
          "description": "Single IPv4 address + prefix length to be configured on the customer router\ninterface for this interconnect attachment.",
          "type": "string"
        },
        "attachmentGroup": {
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the AttachmentGroup that includes this Attachment.",
          "type": "string"
        },
        "operationalStatus": {
          "readOnly": true,
          "enum": [
            "OS_ACTIVE",
            "OS_UNPROVISIONED"
          ],
          "description": "Output only. [Output Only] The current status of whether or not this interconnect\nattachment is functional, which can take one of the following values:\n   \n   - OS_ACTIVE: The attachment has been turned up and is ready to\n   use. \n   - OS_UNPROVISIONED: The attachment is not ready to use yet,\n   because turnup is not complete.",
          "type": "string",
          "enumDescriptions": [
            "Indicates that attachment has been turned up and is ready to\nuse.",
            "Indicates that attachment is not ready to use yet, because\nturnup is not complete."
          ]
        },
        "candidateCustomerRouterIpv6Address": {
          "description": "Single IPv6 address + prefix length to be configured on the customer router\ninterface for this interconnect attachment.",
          "type": "string"
        },
        "customerRouterIpAddress": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] IPv4 address + prefix length to be configured on the customer\nrouter subinterface for this interconnect attachment."
        },
        "interconnect": {
          "description": "URL of the underlying Interconnect object that this attachment's traffic\nwill traverse through.",
          "type": "string"
        },
        "cloudRouterIpv6Address": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] IPv6 address + prefix length to be configured on Cloud\nRouter Interface for this interconnect attachment."
        },
        "cloudRouterIpAddress": {
          "description": "Output only. [Output Only] IPv4 address + prefix length to be configured on Cloud Router\nInterface for this interconnect attachment.",
          "readOnly": true,
          "type": "string"
        },
        "googleReferenceId": {
          "deprecated": true,
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Google reference ID, to be used when raising support tickets\nwith Google or otherwise to debug backend connectivity issues.\n[Deprecated] This field is not used."
        },
        "candidateSubnets": {
          "items": {
            "type": "string"
          },
          "description": "Input only. Up to 16 candidate prefixes that can be used to restrict the allocation\nof cloudRouterIpAddress and customerRouterIpAddress for this attachment.\nAll prefixes must be within link-local address space (169.254.0.0/16) and\nmust be /29 or shorter (/28, /27, etc). Google will attempt to select an\nunused /29 from the supplied candidate prefix(es). The request will fail if\nall possible /29s are in use on Google's edge. If not supplied, Google will\nrandomly select an unused /29 from all of link-local space.",
          "type": "array"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "dataplaneVersion": {
          "format": "int32",
          "readOnly": true,
          "type": "integer",
          "description": "Output only. [Output Only] Dataplane version for this InterconnectAttachment. This\nfield is only present for Dataplane version 2 and higher. Absence of this\nfield in the API output indicates that the Dataplane is version 1."
        },
        "privateInterconnectInfo": {
          "readOnly": true,
          "description": "Output only. [Output Only] Information specific to an InterconnectAttachment.\nThis property is populated if the interconnect that\nthis is attached to is of type DEDICATED.",
          "$ref": "InterconnectAttachmentPrivateInfo"
        },
        "customerRouterIpv6InterfaceId": {
          "type": "string",
          "description": "This field is not available."
        },
        "remoteService": {
          "description": "Output only. [Output Only]\nIf the attachment is on a Cross-Cloud Interconnect connection, this field\ncontains the interconnect's remote location service provider. Example\nvalues: \"Amazon Web Services\" \"Microsoft Azure\".\n\nThe field is set only for attachments on Cross-Cloud Interconnect\nconnections. Its value is copied from the InterconnectRemoteLocation\nremoteService field.",
          "type": "string",
          "readOnly": true
        },
        "encryption": {
          "description": "Indicates the user-supplied encryption option of this VLAN attachment\n(interconnectAttachment). Can only be specified at attachment creation\nfor PARTNER or DEDICATED attachments.\nPossible values are:\n   \n   - NONE - This is the default value, which means that the\n   VLAN attachment carries unencrypted traffic. VMs are able to send\n   traffic to, or receive traffic from, such a VLAN attachment.\n   - IPSEC - The VLAN attachment carries only encrypted\n   traffic that is encrypted by an IPsec device, such as an HA VPN gateway or\n   third-party IPsec VPN. VMs cannot directly send traffic to, or receive\n   traffic from, such a VLAN attachment. To use *HA VPN over Cloud\n   Interconnect*, the VLAN attachment must be created with this\n   option.",
          "type": "string",
          "enum": [
            "IPSEC",
            "NONE"
          ],
          "enumDescriptions": [
            "The interconnect attachment will carry only encrypted traffic that is\nencrypted by an IPsec device such as HA VPN gateway;\nVMs cannot directly send traffic to or receive traffic from such an\ninterconnect attachment.  To use HA VPN over Cloud Interconnect,\nthe interconnect attachment must be created with this option.",
            "This is the default value, which means the Interconnect Attachment will\ncarry unencrypted traffic. VMs will be able to send traffic to or receive\ntraffic from such interconnect attachment."
          ]
        },
        "vlanTag8021q": {
          "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093.\nOnly specified at creation time.",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "Represents an Interconnect Attachment (VLAN) resource.\n\nYou can use Interconnect attachments (VLANS) to connect your Virtual Private\nCloud networks to your on-premises networks through an Interconnect.\nFor more information, read\nCreating VLAN Attachments.",
      "type": "object"
    },
    "BackendBucketAggregatedList": {
      "properties": {
        "items": {
          "type": "object",
          "description": "A list of BackendBucketsScopedList resources.",
          "additionalProperties": {
            "$ref": "BackendBucketsScopedList",
            "description": "Name of the scope containing this set of BackendBuckets."
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "kind": {
          "default": "compute#backendBucketAggregatedList",
          "readOnly": true,
          "description": "Output only. Type of resource.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              }
            }
          },
          "type": "object"
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "BackendBucketAggregatedList"
    },
    "ZoneSetLabelsRequest": {
      "properties": {
        "labels": {
          "description": "The labels to set for this resource.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "labelFingerprint": {
          "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by Compute\nEngine and changes after every request to modify or update labels. You must\nalways provide an up-to-date fingerprint hash in order to update or change\nlabels. Make a get() request to the resource to get the latest\nfingerprint.",
          "format": "byte",
          "type": "string"
        }
      },
      "id": "ZoneSetLabelsRequest",
      "type": "object"
    },
    "ManagedInstanceShutdownDetails": {
      "id": "ManagedInstanceShutdownDetails",
      "properties": {
        "requestTimestamp": {
          "description": "Output only. Past timestamp indicating the beginning of `PENDING_STOP` state of\ninstance in RFC3339\ntext format.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "maxDuration": {
          "description": "Output only. The duration for graceful shutdown. Only applicable when the instance is\nin `PENDING_STOP` state.",
          "$ref": "Duration",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "UrlMapsAggregatedList": {
      "type": "object",
      "id": "UrlMapsAggregatedList",
      "properties": {
        "items": {
          "description": "A list of UrlMapsScopedList resources.",
          "additionalProperties": {
            "$ref": "UrlMapsScopedList",
            "description": "Name of the scope containing this set of UrlMaps."
          },
          "type": "object"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "kind": {
          "description": "Output only. Type of resource.",
          "type": "string",
          "default": "compute#urlMapsAggregatedList",
          "readOnly": true
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources."
        }
      }
    },
    "ProjectsDisableXpnResourceRequest": {
      "type": "object",
      "id": "ProjectsDisableXpnResourceRequest",
      "properties": {
        "xpnResource": {
          "$ref": "XpnResourceId",
          "description": "Service resource (a.k.a service project) ID."
        }
      }
    },
    "InterconnectLocationList": {
      "id": "InterconnectLocationList",
      "properties": {
        "kind": {
          "default": "compute#interconnectLocationList",
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectLocationList for lists of interconnect\nlocations.",
          "readOnly": true
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "items": {
          "items": {
            "$ref": "InterconnectLocation"
          },
          "type": "array",
          "description": "A list of InterconnectLocation resources."
        }
      },
      "description": "Response to the list request, and contains a list of interconnect locations.",
      "type": "object"
    },
    "RegionInstanceGroupManagersAbandonInstancesRequest": {
      "id": "RegionInstanceGroupManagersAbandonInstancesRequest",
      "properties": {
        "instances": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The URLs of one or more instances to abandon. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]."
        }
      },
      "type": "object"
    },
    "GuestAttributes": {
      "id": "GuestAttributes",
      "type": "object",
      "properties": {
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "variableValue": {
          "readOnly": true,
          "description": "Output only. [Output Only] The value found for the requested key.",
          "type": "string"
        },
        "queryValue": {
          "description": "Output only. [Output Only] The value of the requested queried path.",
          "$ref": "GuestAttributesValue",
          "readOnly": true
        },
        "variableKey": {
          "description": "The key to search for.",
          "type": "string"
        },
        "queryPath": {
          "type": "string",
          "description": "The path to be queried. This can be the default namespace ('') or a\nnested namespace ('\\/') or a specified key\n('\\/\\')."
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#guestAttributes",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#guestAttributes for guest attributes entry."
        }
      },
      "description": "A guest attributes entry."
    },
    "InstanceGroupManagerUpdatePolicy": {
      "type": "object",
      "id": "InstanceGroupManagerUpdatePolicy",
      "properties": {
        "maxUnavailable": {
          "description": "The maximum number of instances that can be unavailable during the update\nprocess. An instance is considered available if all of the following\nconditions are satisfied:\n\n   \n   \n     - The instance's status is\n     RUNNING. \n   - If there is a health\n     check on the instance group, the instance's health check status\n     must be HEALTHY at least once. If there is no health check\n     on the group, then the instance only needs to have a status of\n     RUNNING to be considered available.\n\n\nThis value can be either a fixed number or, if the group has 10 or more\ninstances, a percentage. If you set a percentage, the number of instances\nis rounded if necessary. The default value formaxUnavailable is a fixed value equal to the number of zones\nin which the managed instance group operates.\n\nAt least one of either maxSurge ormaxUnavailable must be greater than 0. Learn more about maxUnavailable.",
          "$ref": "FixedOrPercent"
        },
        "instanceRedistributionType": {
          "type": "string",
          "enumDescriptions": [
            "No action is being proactively performed in order to bring this IGM\nto its target instance distribution.",
            "This IGM will actively converge to its target instance distribution."
          ],
          "enum": [
            "NONE",
            "PROACTIVE"
          ],
          "description": "The \ninstance redistribution policy for regional managed instance groups.\nValid values are: \n   \n   - PROACTIVE (default): The group attempts to maintain an\n   even distribution of VM instances across zones in the region.\n   - NONE: For non-autoscaled groups, proactive\n   redistribution is disabled."
        },
        "replacementMethod": {
          "enum": [
            "RECREATE",
            "SUBSTITUTE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Instances will be recreated (with the same name)",
            "Default option: instances will be deleted and created (with a new name)"
          ],
          "description": "What action should be used to replace instances.\nSee minimal_action.REPLACE"
        },
        "mostDisruptiveAllowedAction": {
          "enumDescriptions": [
            "Do not perform any action.",
            "Do not stop the instance.",
            "(Default.) Replace the instance according to the replacement method\noption.",
            "Stop the instance and start it again."
          ],
          "description": "Most disruptive action that is allowed to be taken on an instance.\nYou can specify either NONE to forbid any actions,REFRESH to avoid restarting the VM and to limit disruption\nas much as possible. RESTART to allow actions that can be\napplied without instance replacing or REPLACE to allow all\npossible actions. If the Updater determines that the minimal update\naction needed is more disruptive than most disruptive allowed action you\nspecify it will not perform the update at all.",
          "enum": [
            "NONE",
            "REFRESH",
            "REPLACE",
            "RESTART"
          ],
          "type": "string"
        },
        "maxSurge": {
          "description": "The maximum number of instances that can be created above the specifiedtargetSize during the update process. This value can be\neither a fixed number or, if the group has 10 or more instances, a\npercentage. If you set a percentage, the number of instances is rounded\nif necessary.  The default value for maxSurge is a fixed\nvalue equal to the number of zones in which the managed instance group\noperates.\n\nAt least one of either maxSurge ormaxUnavailable must be greater than 0. Learn more about maxSurge.",
          "$ref": "FixedOrPercent"
        },
        "type": {
          "enumDescriptions": [
            "MIG will apply new configurations\nto existing VMs only when you selectively target specific or all VMs to\nbe updated.",
            "MIG will automatically apply new configurations\nto all or a subset of existing VMs and also to new VMs that are added\nto the group."
          ],
          "type": "string",
          "enum": [
            "OPPORTUNISTIC",
            "PROACTIVE"
          ],
          "description": "The type\nof update process. You can specify either PROACTIVE so\nthat the MIG automatically updates VMs to the latest configurations orOPPORTUNISTIC so that you can select the VMs that you want\nto update."
        },
        "minimalAction": {
          "type": "string",
          "enum": [
            "NONE",
            "REFRESH",
            "REPLACE",
            "RESTART"
          ],
          "enumDescriptions": [
            "Do not perform any action.",
            "Do not stop the instance.",
            "(Default.) Replace the instance according to the replacement method\noption.",
            "Stop the instance and start it again."
          ],
          "description": "Minimal action to be taken on an instance. Use this option to minimize\ndisruption as much as possible or to apply a more disruptive action than\nis necessary.\n   \n   - To limit disruption as much as possible, set the minimal action toREFRESH. If your update requires a more disruptive action,\n   Compute Engine performs the necessary action to execute the update.\n   - To apply a more disruptive action than is strictly necessary, set the\n   minimal action to RESTART or REPLACE. For\n   example, Compute Engine does not need to restart a VM to change its\n   metadata. But if your application reads instance metadata only when a VM\n   is restarted, you can set the minimal action to RESTART in\n   order to pick up metadata changes."
        }
      }
    },
    "Duration": {
      "properties": {
        "seconds": {
          "description": "Span of time at a resolution of a second. Must be from 0\nto 315,576,000,000 inclusive. Note: these bounds are computed from:\n60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
          "type": "string",
          "format": "int64"
        },
        "nanos": {
          "description": "Span of time that's a fraction of a second at nanosecond resolution.\nDurations less than one second are represented with a 0\n`seconds` field and a positive `nanos` field. Must be from 0\nto 999,999,999 inclusive.",
          "type": "integer",
          "format": "int32"
        }
      },
      "type": "object",
      "description": "A Duration represents a fixed-length span of time represented\nas a count of seconds and fractions of seconds at nanosecond\nresolution. It is independent of any calendar and concepts like \"day\"\nor \"month\". Range is approximately 10,000 years.",
      "id": "Duration"
    },
    "AutoscalerStatusDetails": {
      "properties": {
        "type": {
          "description": "The type of error, warning, or notice returned. Current set of possible\nvalues:\n   \n   - ALL_INSTANCES_UNHEALTHY (WARNING):\n     All instances in the instance group are unhealthy (not in RUNNING\n     state).\n   - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR):\n     There is no backend service attached to the instance group.\n   - CAPPED_AT_MAX_NUM_REPLICAS (WARNING):\n     Autoscaler recommends a size greater than maxNumReplicas.\n   - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING):\n     The custom metric samples are not exported often enough to be\n     a credible base for autoscaling.\n   - CUSTOM_METRIC_INVALID (ERROR):\n     The custom metric that was specified does not exist or does not have\n     the necessary labels.\n   - MIN_EQUALS_MAX (WARNING):\n     The minNumReplicas is equal to maxNumReplicas. This means the\n     autoscaler cannot add or remove instances from the instance group.\n   - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING):\n     The autoscaler did not receive any data from the custom metric\n     configured for autoscaling.\n   - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING):\n     The autoscaler is configured to scale based on a load balancing signal\n     but the instance group has not received any requests from the load\n     balancer.\n   - MODE_OFF (WARNING):\n     Autoscaling is turned off. The number of instances in the group won't\n     change automatically. The autoscaling configuration is preserved.\n   - MODE_ONLY_UP (WARNING):\n     Autoscaling is in the \"Autoscale only out\" mode. The autoscaler can add\n     instances but not remove any.\n   - MORE_THAN_ONE_BACKEND_SERVICE (ERROR):\n     The instance group cannot be autoscaled because it has more than one\n     backend service attached to it.\n   - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR):\n     There is insufficient quota for the necessary resources, such as CPU or\n     number of instances.\n   - REGION_RESOURCE_STOCKOUT (ERROR):\n     Shown only for regional autoscalers: there is a resource stockout in\n     the chosen region.\n   - SCALING_TARGET_DOES_NOT_EXIST (ERROR):\n     The target to be scaled does not exist.\n   - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION\n     (ERROR): Autoscaling does not work with an HTTP/S load balancer that\n     has been configured for maxRate.\n   - ZONE_RESOURCE_STOCKOUT (ERROR):\n     For zonal autoscalers: there is a resource stockout in the chosen zone.\n     For regional autoscalers: in at least one of the zones you're using\n     there is a resource stockout.\n\n\nNew values might be added in the future. Some of the values might not be\navailable in all API versions.",
          "type": "string",
          "enumDescriptions": [
            "All instances in the instance group are unhealthy (not in RUNNING state).",
            "There is no backend service attached to the instance group.",
            "Autoscaler recommends a size greater than maxNumReplicas.",
            "The custom metric samples are not exported often enough to be a credible\nbase for autoscaling.",
            "The custom metric that was specified does not exist or does not have the\nnecessary labels.",
            "The minNumReplicas is equal to maxNumReplicas. This means the autoscaler\ncannot add or remove instances from the instance group.",
            "The autoscaler did not receive any data from the custom metric configured\nfor autoscaling.",
            "The autoscaler is configured to scale based on a load balancing signal\nbut the instance group has not received any requests from the load\nbalancer.",
            "Autoscaling is turned off. The number of instances in the group won't\nchange automatically. The autoscaling configuration is preserved.",
            "Autoscaling is in the \"Autoscale only scale out\" mode.\nInstances in the group will be only added.",
            "Autoscaling is in the \"Autoscale only out\" mode. Instances in the group\nwill be only added.",
            "The instance group cannot be autoscaled because it has more than one\nbackend service attached to it.",
            "There is insufficient quota for the necessary resources, such as CPU or\nnumber of instances.",
            "Showed only for regional autoscalers: there is a resource stockout in\nthe chosen region.",
            "The target to be scaled does not exist.",
            "For some scaling schedules minRequiredReplicas is greater than\nmaxNumReplicas. Autoscaler always recommends at most maxNumReplicas\ninstances.",
            "For some scaling schedules minRequiredReplicas is less than\nminNumReplicas. Autoscaler always recommends at least minNumReplicas\ninstances.",
            "",
            "Autoscaling does not work with an HTTP/S load balancer that has been\nconfigured for maxRate.",
            "For zonal autoscalers: there is a resource stockout in the chosen zone.\nFor regional autoscalers: in at least one of the zones you're using there\nis a resource stockout."
          ],
          "enum": [
            "ALL_INSTANCES_UNHEALTHY",
            "BACKEND_SERVICE_DOES_NOT_EXIST",
            "CAPPED_AT_MAX_NUM_REPLICAS",
            "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE",
            "CUSTOM_METRIC_INVALID",
            "MIN_EQUALS_MAX",
            "MISSING_CUSTOM_METRIC_DATA_POINTS",
            "MISSING_LOAD_BALANCING_DATA_POINTS",
            "MODE_OFF",
            "MODE_ONLY_SCALE_OUT",
            "MODE_ONLY_UP",
            "MORE_THAN_ONE_BACKEND_SERVICE",
            "NOT_ENOUGH_QUOTA_AVAILABLE",
            "REGION_RESOURCE_STOCKOUT",
            "SCALING_TARGET_DOES_NOT_EXIST",
            "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX",
            "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN",
            "UNKNOWN",
            "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION",
            "ZONE_RESOURCE_STOCKOUT"
          ]
        },
        "message": {
          "type": "string",
          "description": "The status message."
        }
      },
      "type": "object",
      "id": "AutoscalerStatusDetails"
    },
    "PacketMirroringNetworkInfo": {
      "id": "PacketMirroringNetworkInfo",
      "type": "object",
      "properties": {
        "canonicalUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Unique identifier for the network; defined by the server."
        },
        "url": {
          "description": "URL of the network resource.",
          "type": "string"
        }
      }
    },
    "InterconnectGroupConfiguredTopologyCapability": {
      "description": "[Output Only] How reliable this topology is configured to be, and why\nthis group does or does not meet the requirements for the intended\ncapability.",
      "properties": {
        "intendedCapabilityBlockers": {
          "type": "array",
          "items": {
            "$ref": "InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers"
          },
          "readOnly": true
        },
        "supportedSla": {
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "readOnly": true,
          "type": "string",
          "enum": [
            "NO_SLA",
            "PRODUCTION_CRITICAL",
            "PRODUCTION_NON_CRITICAL",
            "UNSPECIFIED"
          ]
        }
      },
      "type": "object",
      "id": "InterconnectGroupConfiguredTopologyCapability"
    },
    "ResourcePolicySnapshotSchedulePolicy": {
      "properties": {
        "schedule": {
          "description": "A Vm Maintenance Policy specifies what kind of infrastructure\nmaintenance we are allowed to perform on this VM and when. Schedule\nthat is applied to disks covered by this policy.",
          "$ref": "ResourcePolicySnapshotSchedulePolicySchedule"
        },
        "snapshotProperties": {
          "description": "Properties with which snapshots are created such as labels, encryption\nkeys.",
          "$ref": "ResourcePolicySnapshotSchedulePolicySnapshotProperties"
        },
        "retentionPolicy": {
          "$ref": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy",
          "description": "Retention policy applied to snapshots created by this resource policy."
        }
      },
      "type": "object",
      "description": "A snapshot schedule policy specifies when and how frequently snapshots are\nto be created for the target disk. Also specifies how many and how long\nthese scheduled snapshots should be retained.",
      "id": "ResourcePolicySnapshotSchedulePolicy"
    },
    "InterconnectDiagnosticsARPEntry": {
      "id": "InterconnectDiagnosticsARPEntry",
      "type": "object",
      "properties": {
        "macAddress": {
          "type": "string",
          "description": "The MAC address of this ARP neighbor."
        },
        "ipAddress": {
          "description": "The IP address of this ARP neighbor.",
          "type": "string"
        }
      },
      "description": "Describing the ARP neighbor entries seen on this link"
    },
    "RoutersScopedList": {
      "properties": {
        "routers": {
          "description": "A list of routers contained in this scope.",
          "items": {
            "$ref": "Router"
          },
          "type": "array"
        },
        "warning": {
          "type": "object",
          "description": "Informational warning which replaces the list of routers when\nthe list is empty.",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        }
      },
      "id": "RoutersScopedList",
      "type": "object"
    },
    "Snapshot": {
      "description": "Represents a Persistent Disk Snapshot resource.\n\nYou can use snapshots to back up data on a regular interval. For more\ninformation, read  Creating\npersistent disk snapshots.",
      "properties": {
        "creationSizeBytes": {
          "description": "Output only. [Output Only] Size in bytes of the snapshot at creation time.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "snapshotGroupName": {
          "type": "string",
          "description": "Output only. [Output only] The snapshot group that this snapshot belongs to. The usage\nof snapshot group feature is restricted.",
          "readOnly": true
        },
        "licenses": {
          "type": "array",
          "description": "Output only. [Output Only] A list of public visible licenses that apply to this\nsnapshot. This can be because the original image had licenses attached\n(such as a Windows image).",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "sourceDisk": {
          "description": "The source disk used to create this snapshot.",
          "type": "string"
        },
        "autoCreated": {
          "description": "Output only. [Output Only] Set to true if snapshots are automatically created by\napplying resource policy on the target disk.",
          "type": "boolean",
          "readOnly": true
        },
        "sourceInstantSnapshotId": {
          "description": "Output only. [Output Only] The unique ID of the instant snapshot used to create this\nsnapshot. This value identifies the exact instant snapshot that was used to\ncreate this snapshot. For example, if you created the snapshot from an\ninstant snapshot that was later deleted and recreated under the same name,\nthe source instant snapshot ID would identify the exact instant snapshot\nthat was used.",
          "readOnly": true,
          "type": "string"
        },
        "sourceSnapshotSchedulePolicy": {
          "description": "Output only. [Output Only] URL of the resource policy which created this\nscheduled snapshot.",
          "readOnly": true,
          "type": "string"
        },
        "enableConfidentialCompute": {
          "description": "Output only. Whether this snapshot is created from a confidential compute mode disk.\n[Output Only]: This field is not set by user, but from source disk.",
          "readOnly": true,
          "type": "boolean"
        },
        "storageBytesStatus": {
          "type": "string",
          "enum": [
            "UPDATING",
            "UP_TO_DATE"
          ],
          "description": "Output only. [Deprecated] Instead, check the storageBytes field. After\nsnapshot creation, the storageBytesStatus field is alwaysUP_TO_DATE.\n[Output Only] An indicator whether storageBytes is in a\nstable state or it is being adjusted as a result of shared storage\nreallocation. This status can either be unset, meaning the snapshot is\nbeing created, or UP_TO_DATE, meaning the size of the snapshot\nis up-to-date.",
          "readOnly": true,
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "chainName": {
          "description": "Creates the new snapshot in the snapshot chain labeled with the\nspecified name. The chain name must be 1-63 characters long and comply\nwith RFC1035. This is an uncommon option only for advanced service\nowners who needs to create separate snapshot chains, for example,\nfor chargeback tracking. When you describe your snapshot resource, this\nfield is visible only if it has a non-empty value.",
          "type": "string"
        },
        "licenseCodes": {
          "type": "array",
          "description": "Output only. [Output Only] Integer license codes indicating which licenses are attached\nto this snapshot.",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "readOnly": true
        },
        "snapshotEncryptionKey": {
          "$ref": "CustomerEncryptionKey",
          "description": "Encrypts the snapshot using acustomer-supplied\nencryption key.\n\nAfter you encrypt a snapshot using a customer-supplied key, you must\nprovide the same key if you use the snapshot later. For example, you must\nprovide the encryption key when you create a disk from the encrypted\nsnapshot in a future request.\n\nCustomer-supplied encryption keys do not protect access to metadata\nof the snapshot.\n\nIf you do not provide an encryption key when creating the snapshot, then\nthe snapshot will be encrypted using an automatically generated key and you\ndo not need to provide a key to use the snapshot later."
        },
        "sourceInstantSnapshotEncryptionKey": {
          "description": "Customer provided encryption key when creating Snapshot from Instant\nSnapshot.",
          "$ref": "CustomerEncryptionKey"
        },
        "architecture": {
          "type": "string",
          "description": "Output only. [Output Only] The architecture of the snapshot. Valid values are\nARM64 or X86_64.",
          "enumDescriptions": [
            "Default value indicating Architecture is not set.",
            "Machines with architecture ARM64",
            "Machines with architecture X86_64"
          ],
          "readOnly": true,
          "enum": [
            "ARCHITECTURE_UNSPECIFIED",
            "ARM64",
            "X86_64"
          ]
        },
        "snapshotGroupId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The unique ID of the snapshot group that this snapshot\nbelongs to. The usage of snapshot group feature is restricted."
        },
        "satisfiesPzs": {
          "readOnly": true,
          "description": "Output only. [Output Only] Reserved for future use.",
          "type": "boolean"
        },
        "storageBytes": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. [Output Only] A size of the storage used by the snapshot. As snapshots\nshare storage, this number is expected to change with snapshot\ncreation/deletion."
        },
        "region": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the region where the snapshot resides. Only applicable\nfor regional snapshots.",
          "readOnly": true
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string",
          "readOnly": true
        },
        "downloadBytes": {
          "type": "string",
          "description": "Output only. [Output Only] Number of bytes downloaded to restore a snapshot to a disk.",
          "format": "int64",
          "readOnly": true
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Always compute#snapshot\nfor Snapshot resources.",
          "readOnly": true,
          "default": "compute#snapshot"
        },
        "guestOsFeatures": {
          "description": "Output only. [Output Only] A list of features to enable on the guest operating system.\nApplicable only for bootable images. Read \nEnabling guest operating system features to see a list of available\noptions.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GuestOsFeature"
          }
        },
        "labels": {
          "description": "Labels to apply to this snapshot. These can be later modified by\nthe setLabels method.\nLabel values may be empty.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "sourceDiskEncryptionKey": {
          "$ref": "CustomerEncryptionKey",
          "description": "The customer-supplied\nencryption key of the source disk. Required if the source disk is\nprotected by a customer-supplied encryption key."
        },
        "snapshotType": {
          "enum": [
            "ARCHIVE",
            "STANDARD"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Indicates the type of the snapshot.",
          "type": "string"
        },
        "params": {
          "$ref": "SnapshotParams",
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload."
        },
        "storageLocations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cloud Storage bucket storage location of the snapshot (regional or\nmulti-regional)."
        },
        "diskSizeGb": {
          "description": "Output only. [Output Only] Size of the source disk, specified in GB.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "readOnly": true,
          "format": "uint64"
        },
        "labelFingerprint": {
          "description": "A fingerprint for the labels being applied to this snapshot, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a snapshot.",
          "type": "string",
          "format": "byte"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "CREATING",
            "DELETING",
            "FAILED",
            "READY",
            "UPLOADING"
          ],
          "type": "string",
          "enumDescriptions": [
            "Snapshot creation is in progress.",
            "Snapshot is currently being deleted.",
            "Snapshot creation failed.",
            "Snapshot has been created successfully.",
            "Snapshot is being uploaded."
          ],
          "description": "Output only. [Output Only] The status of the snapshot. This can beCREATING, DELETING, FAILED,READY, or UPLOADING."
        },
        "sourceDiskForRecoveryCheckpoint": {
          "description": "The source disk whose recovery checkpoint will be used to create this\nsnapshot.",
          "type": "string"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.disks.createSnapshot",
              "compute.snapshots.insert"
            ]
          },
          "type": "string",
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash."
        },
        "locationHint": {
          "description": "An opaque location hint used to place the snapshot close to other\nresources.\nThis field is for use by internal tools that use the public API.",
          "type": "string"
        },
        "sourceInstantSnapshot": {
          "type": "string",
          "description": "The source instant snapshot used to create this snapshot. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot\n     - projects/project/zones/zone/instantSnapshots/instantSnapshot \n   - zones/zone/instantSnapshots/instantSnapshot"
        },
        "guestFlush": {
          "type": "boolean",
          "description": "[Input Only] Whether to attempt an application consistent snapshot by\ninforming the OS to prepare for the snapshot process."
        },
        "satisfiesPzi": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Reserved for future use."
        },
        "sourceDiskId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The ID value of the disk used to create this snapshot. This\nvalue may be used to determine whether the snapshot was taken from the\ncurrent or a previous instance of a given disk name."
        },
        "sourceSnapshotSchedulePolicyId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] ID of the resource policy which created this\nscheduled snapshot."
        }
      },
      "id": "Snapshot",
      "type": "object"
    },
    "InterconnectGroupInterconnect": {
      "type": "object",
      "description": "An Interconnect in this InterconnectGroup.",
      "properties": {
        "interconnect": {
          "description": "The URL of an Interconnect in this group. All Interconnects in the group\nare unique.",
          "type": "string"
        }
      },
      "id": "InterconnectGroupInterconnect"
    },
    "InterconnectGroupConfigured": {
      "description": "[Output Only] The status of the group as configured. This has the same\nstructure as the operational field reported by the OperationalStatus\nmethod, but does not take into account the operational status of each\nresource.",
      "type": "object",
      "properties": {
        "topologyCapability": {
          "readOnly": true,
          "$ref": "InterconnectGroupConfiguredTopologyCapability"
        }
      },
      "id": "InterconnectGroupConfigured"
    },
    "RiskRecommendation": {
      "id": "RiskRecommendation",
      "type": "object",
      "description": "Recommendation for mitigating a reliability risk, including a reference URL.",
      "properties": {
        "referenceUrl": {
          "description": "URL referencing a more detailed mitigation guide.",
          "type": "string"
        },
        "content": {
          "type": "string",
          "description": "Mitigation guide for the risk."
        }
      }
    },
    "DeprecationStatus": {
      "properties": {
        "deprecated": {
          "description": "An optional RFC3339 timestamp on or after which the state of this\nresource is intended to change to DEPRECATED. This is only\ninformational and the status will not change unless the client explicitly\nchanges it.",
          "type": "string"
        },
        "obsolete": {
          "type": "string",
          "description": "An optional RFC3339 timestamp on or after which the state of this\nresource is intended to change to OBSOLETE. This is only\ninformational and the status will not change unless the client explicitly\nchanges it."
        },
        "replacement": {
          "type": "string",
          "description": "The URL of the suggested replacement for a deprecated resource.\nThe suggested replacement resource must be the same kind of resource as the\ndeprecated resource."
        },
        "deleted": {
          "type": "string",
          "description": "An optional RFC3339 timestamp on or after which the state of this\nresource is intended to change to DELETED. This is only\ninformational and the status will not change unless the client explicitly\nchanges it."
        },
        "state": {
          "enum": [
            "ACTIVE",
            "DELETED",
            "DEPRECATED",
            "OBSOLETE"
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "description": "The deprecation state of this resource. This can be ACTIVE,DEPRECATED, OBSOLETE, or DELETED.\nOperations which communicate the end of life date for an image, can useACTIVE. Operations which create a new resource using aDEPRECATED resource will return successfully, but with a\nwarning indicating the deprecated resource and recommending its\nreplacement. Operations which use OBSOLETE orDELETED resources will be rejected and result in an error."
        }
      },
      "type": "object",
      "id": "DeprecationStatus",
      "description": "Deprecation status for a public resource."
    },
    "Date": {
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of\nday and time zone are either specified elsewhere or are insignificant. The\ndate is relative to the Gregorian Calendar. This can represent one of the\nfollowing:\n\n* A full date, with non-zero year, month, and day values.\n* A month and day, with a zero year (for example, an anniversary).\n* A year on its own, with a zero month and a zero day.\n* A year and month, with a zero day (for example, a credit card expiration\n  date).\n\nRelated types:\n\n* google.type.TimeOfDay\n* google.type.DateTime\n* google.protobuf.Timestamp",
      "properties": {
        "year": {
          "type": "integer",
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without\na year.",
          "format": "int32"
        },
        "day": {
          "type": "integer",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0\nto specify a year by itself or a year and month where the day isn't\nsignificant.",
          "format": "int32"
        },
        "month": {
          "type": "integer",
          "format": "int32",
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a\nmonth and day."
        }
      },
      "type": "object",
      "id": "Date"
    },
    "BulkZoneSetLabelsRequest": {
      "id": "BulkZoneSetLabelsRequest",
      "properties": {
        "requests": {
          "type": "array",
          "items": {
            "$ref": "BulkSetLabelsRequest"
          }
        }
      },
      "type": "object"
    },
    "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the location. It should be one of the Cloud Storage buckets.\nOnly one location can be specified."
        }
      },
      "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference",
      "description": "A structure for specifying storage locations."
    },
    "BackendServiceHttpCookie": {
      "id": "BackendServiceHttpCookie",
      "type": "object",
      "description": "The HTTP cookie used for stateful session affinity.",
      "properties": {
        "ttl": {
          "$ref": "Duration",
          "description": "Lifetime of the cookie."
        },
        "path": {
          "description": "Path to set for the cookie.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Name of the cookie."
        }
      }
    },
    "AllocationSpecificSKUReservation": {
      "properties": {
        "instanceProperties": {
          "description": "The instance properties for the reservation.",
          "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties"
        },
        "assuredCount": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Indicates how many instances are actually usable currently.",
          "format": "int64"
        },
        "count": {
          "type": "string",
          "format": "int64",
          "description": "Specifies the number of resources that are allocated."
        },
        "inUseCount": {
          "description": "Output only. [Output Only] Indicates how many instances are in use.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "sourceInstanceTemplate": {
          "description": "Specifies the instance template to create the reservation. If you use\nthis field, you must exclude the instanceProperties field.\n\nThis field is optional, and it can be a full or partial URL. For example,\nthe following are all valid URLs to an instance template: \n   \n   \n      - https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate\n      - projects/project/global/instanceTemplates/instanceTemplate\n      - global/instanceTemplates/instanceTemplate",
          "type": "string"
        }
      },
      "type": "object",
      "id": "AllocationSpecificSKUReservation",
      "description": "This reservation type allows to pre allocate specific instance\n configuration."
    },
    "TargetGrpcProxy": {
      "properties": {
        "validateForProxyless": {
          "description": "If true, indicates that the BackendServices referenced by the urlMap may be\naccessed by gRPC applications without using a sidecar proxy. This will\nenable configuration checks on urlMap and its referenced BackendServices to\nnot allow unsupported features. A gRPC application must use\n\"xds:///\" scheme in the target URI of the service it is\nconnecting to.\nIf false, indicates that the BackendServices referenced by the urlMap will\nbe accessed by gRPC applications via a sidecar proxy. In this case, a gRPC\napplication must not use \"xds:///\" scheme in the target URI of\nthe service it is connecting to",
          "type": "boolean"
        },
        "selfLinkWithId": {
          "description": "Output only. [Output Only] Server-defined URL with id for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.",
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "annotations": {
            "required": [
              "compute.targetGrpcProxies.insert"
            ]
          }
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetGrpcProxy for target grpc proxies.",
          "default": "compute#targetGrpcProxy",
          "type": "string",
          "readOnly": true
        },
        "urlMap": {
          "description": "URL to the UrlMap resource that defines the mapping from URL to the\nBackendService. The protocol field in the BackendService must be set to\nGRPC.",
          "type": "string"
        },
        "fingerprint": {
          "format": "byte",
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a TargetGrpcProxy. An up-to-date fingerprint must\nbe provided in order to patch/update the TargetGrpcProxy; otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nTargetGrpcProxy.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents a Target gRPC Proxy resource.\n\nA target gRPC proxy is a component of load balancers intended for\nload balancing gRPC traffic. Only global forwarding rules with load balancing\nscheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target\ngRPC Proxy references a URL map that specifies how traffic is routed to\ngRPC backend services.",
      "id": "TargetGrpcProxy"
    },
    "PacketMirroringForwardingRuleInfo": {
      "type": "object",
      "properties": {
        "canonicalUrl": {
          "readOnly": true,
          "description": "Output only. [Output Only] Unique identifier for the forwarding rule; defined by the\nserver.",
          "type": "string"
        },
        "url": {
          "description": "Resource URL to the forwarding rule representing the ILB\nconfigured as destination of the mirrored traffic.",
          "type": "string"
        }
      },
      "id": "PacketMirroringForwardingRuleInfo"
    },
    "Tags": {
      "description": "A set of instance tags.",
      "properties": {
        "fingerprint": {
          "format": "byte",
          "type": "string",
          "description": "Specifies a fingerprint for this request, which is essentially a hash of\nthe tags' contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update tags. You must always provide an\nup-to-date fingerprint hash in order to update or change tags.\n\nTo see the latest fingerprint, make get() request to the\ninstance."
        },
        "items": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "An array of tags. Each tag must be 1-63 characters long, and comply\nwith RFC1035.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        }
      },
      "id": "Tags",
      "type": "object"
    },
    "ResourcePolicyHourlyCycle": {
      "id": "ResourcePolicyHourlyCycle",
      "properties": {
        "duration": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output only] Duration of the time window, automatically chosen to be\nsmallest possible in the given scenario."
        },
        "hoursInCycle": {
          "type": "integer",
          "description": "Defines a schedule with units measured in hours. The value determines\nhow many hours pass between the start of each cycle.",
          "format": "int32"
        },
        "startTime": {
          "type": "string",
          "description": "Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT."
        }
      },
      "description": "Time window specified for hourly operations.",
      "type": "object"
    },
    "LicenseResourceRequirements": {
      "id": "LicenseResourceRequirements",
      "properties": {
        "minMemoryMb": {
          "format": "int32",
          "description": "[Input Only] Deprecated. This field no longer reflects the minimum memory\nrequired to use the Instance.",
          "type": "integer"
        },
        "minGuestCpuCount": {
          "format": "int32",
          "type": "integer",
          "description": "[Input Only] Deprecated. This field no longer reflects the minimum number\nof guest cpus required to use the Instance."
        }
      },
      "type": "object"
    },
    "BackendService": {
      "id": "BackendService",
      "properties": {
        "externalManagedMigrationState": {
          "type": "string",
          "enum": [
            "PREPARE",
            "TEST_ALL_TRAFFIC",
            "TEST_BY_PERCENTAGE"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "description": "Specifies the canary migration state. Possible values are PREPARE,\nTEST_BY_PERCENTAGE, and TEST_ALL_TRAFFIC.\n\nTo begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be\nchanged to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before\nthe loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate traffic by percentage using\nexternalManagedMigrationTestingPercentage.\n\nRolling back a migration requires the states to be set in reverse order. So\nchanging the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to\nbe set to TEST_ALL_TRAFFIC at the same time. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate some traffic back to\nEXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL."
        },
        "maxStreamDuration": {
          "$ref": "Duration",
          "description": "Specifies the default maximum duration (timeout) for streams to this\nservice. Duration is computed from the beginning of the stream until the\nresponse has been completely processed, including all retries. A stream\nthat does not complete in this duration is closed.\n\nIf not specified, there will be no timeout limit, i.e. the maximum\nduration is infinite.\n\nThis value can be overridden in the PathMatcher configuration of the\nUrlMap that references this backend service.\n\nThis field is only allowed when the loadBalancingScheme of\nthe backend service is INTERNAL_SELF_MANAGED."
        },
        "usedBy": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output Only] List of resources referencing given backend service.",
          "items": {
            "$ref": "BackendServiceUsedBy"
          }
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "backends": {
          "description": "The list of backends that serve this BackendService.",
          "type": "array",
          "items": {
            "$ref": "Backend"
          }
        },
        "customMetrics": {
          "type": "array",
          "description": "List of custom metrics that are used for theWEIGHTED_ROUND_ROBIN locality_lb_policy.",
          "items": {
            "$ref": "BackendServiceCustomMetric"
          }
        },
        "orchestrationInfo": {
          "description": "Information about the resource or system that manages the backend service.",
          "$ref": "BackendServiceOrchestrationInfo"
        },
        "protocol": {
          "enum": [
            "GRPC",
            "H2C",
            "HTTP",
            "HTTP2",
            "HTTPS",
            "SSL",
            "TCP",
            "UDP",
            "UNSPECIFIED"
          ],
          "description": "The protocol this BackendService uses to communicate with backends.\n\nPossible values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP, GRPC, or\nUNSPECIFIED, depending on the chosen load balancer or Traffic Director\nconfiguration.\nRefer to \nLoad balancing features for more information.\n\nMust be set to GRPC when the backend service is referenced by a URL map\nthat is bound to target gRPC proxy.",
          "enumDescriptions": [
            "gRPC (available for Traffic Director).",
            "HTTP2 over cleartext",
            "",
            "HTTP/2 with SSL.",
            "",
            "TCP proxying with SSL.",
            "TCP proxying or TCP pass-through.",
            "UDP.",
            "If a Backend Service has UNSPECIFIED as its protocol, it can be used with\nany L3/L4 Forwarding Rules."
          ],
          "type": "string"
        },
        "circuitBreakers": {
          "$ref": "CircuitBreakers"
        },
        "name": {
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "portName": {
          "description": "A named port on a backend instance group representing the port for\ncommunication to the backend VMs in that group. The\nnamed port must be [defined on each backend instance\ngroup](https://cloud.google.com/load-balancing/docs/backend-service#named_ports).\nThis parameter has no meaning if the backends are NEGs. For internal\npassthrough Network Load Balancers and external passthrough Network Load\nBalancers, omit port_name.",
          "type": "string"
        },
        "iap": {
          "$ref": "BackendServiceIAP",
          "description": "The configurations for Identity-Aware Proxy on this resource.\nNot available for internal passthrough Network Load Balancers and external\npassthrough Network Load Balancers."
        },
        "serviceLbPolicy": {
          "description": "URL to networkservices.ServiceLbPolicy resource.\n\nCan only be set if load balancing scheme is EXTERNAL_MANAGED,\nINTERNAL_MANAGED or INTERNAL_SELF_MANAGED for a global backend service, and\nEXTERNAL_MANAGED or INTERNAL_MANAGED for a regional backend service. For a\nglobal backend service, the service lb policy must be global. For a\nregional backend service, the service lb policy must be regional and in the\nsame region.",
          "type": "string"
        },
        "ipAddressSelectionPolicy": {
          "type": "string",
          "description": "Specifies a preference for traffic sent from the proxy to the backend (or\nfrom the client to the backend for proxyless gRPC).\nThe possible values are:\n   \n   - IPV4_ONLY: Only send IPv4 traffic to the backends of the\n   backend service (Instance Group, Managed Instance Group, Network Endpoint\n   Group), regardless of traffic from the client to the proxy. Only IPv4\n   health checks are used to check the health of the backends. This is the\n   default setting.\n   - PREFER_IPV6: Prioritize the connection to the endpoint's\n   IPv6 address over its IPv4 address (provided there is a healthy IPv6\n   address).\n   - IPV6_ONLY: Only send IPv6 traffic to the backends of the\n   backend service (Instance Group, Managed Instance Group, Network Endpoint\n   Group), regardless of traffic from the client to the proxy. Only IPv6\n   health checks are used to check the health of the backends.\n\n\n\nThis field is applicable to either:\n   \n   -  Advanced global external Application Load Balancer (load balancing\n   scheme EXTERNAL_MANAGED), \n   -  Regional external Application Load\n   Balancer, \n   -  Internal proxy Network Load Balancer (load balancing\n   scheme INTERNAL_MANAGED), \n   -  Regional internal Application Load\n   Balancer (load balancing scheme INTERNAL_MANAGED), \n   -  Traffic\n   Director with Envoy proxies and proxyless gRPC (load balancing scheme\n   INTERNAL_SELF_MANAGED).",
          "enumDescriptions": [
            "Only send IPv4 traffic to the backends of the Backend Service\n(Instance Group, Managed Instance Group, Network Endpoint Group)\nregardless of traffic from the client to the proxy.\nOnly IPv4 health-checks are used to check the health of the backends.\nThis is the default setting.",
            "Only send IPv6 traffic to the backends of the Backend Service\n(Instance Group, Managed Instance Group, Network Endpoint Group)\nregardless of traffic from the client to the proxy. Only IPv6\nhealth-checks are used to check the health of the backends.",
            "Unspecified IP address selection policy.",
            "Prioritize the connection to the endpoints IPv6 address\nover its IPv4 address (provided there is a healthy IPv6 address)."
          ],
          "enum": [
            "IPV4_ONLY",
            "IPV6_ONLY",
            "IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED",
            "PREFER_IPV6"
          ]
        },
        "tlsSettings": {
          "description": "Configuration for Backend Authenticated TLS and mTLS. May only be specified\nwhen the backend protocol is SSL, HTTPS or HTTP2.",
          "$ref": "BackendServiceTlsSettings"
        },
        "failoverPolicy": {
          "description": "Requires at least one backend instance group to be defined\nas a backup (failover) backend.\nFor load balancers that have configurable failover:\n[Internal passthrough Network Load\nBalancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external passthrough Network Load\nBalancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).\nfailoverPolicy cannot be specified with haPolicy.failoverPolicy cannot be used by global external Passthrough\nNetwork Load Balancers.",
          "$ref": "BackendServiceFailoverPolicy"
        },
        "haPolicy": {
          "description": "Configures self-managed High Availability (HA) for External and Internal\nProtocol Forwarding.\n\nThe backends of this regional backend service must only specify zonal\nnetwork endpoint groups (NEGs) of type GCE_VM_IP.\n\nWhen haPolicy is set for an Internal Passthrough Network Load Balancer, the\nregional backend service must set the network field. All zonal NEGs must\nbelong to the same network. However, individual NEGs can\nbelong to different subnetworks of that network.\n\nWhen haPolicy is specified, the set of attached network endpoints across\nall backends comprise an High Availability domain from which one endpoint\nis selected as the active endpoint (the leader) that receives all\ntraffic.\n\nhaPolicy can be added only at backend service creation time. Once set up,\nit cannot be deleted.\n\nNote that haPolicy is not for load balancing, and therefore cannot be\nspecified with sessionAffinity, connectionTrackingPolicy, and\nfailoverPolicy.\n\nhaPolicy requires customers to be responsible for tracking backend\nendpoint health and electing a leader among the healthy endpoints.\nTherefore, haPolicy cannot be specified with healthChecks.\nhaPolicy can only be specified for External Passthrough\nNetwork Load Balancers and Internal Passthrough Network Load Balancers.haPolicy cannot be used by global external Passthrough Network\nLoad Balancers.",
          "$ref": "BackendServiceHAPolicy"
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "BackendServiceParams"
        },
        "edgeSecurityPolicy": {
          "type": "string",
          "description": "[Output Only] The resource URL for the edge security policy associated with\nthis backend service."
        },
        "enableCDN": {
          "description": "If true, enables Cloud CDN for the backend service of a\nglobal external Application Load Balancer.",
          "type": "boolean"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "cdnPolicy": {
          "$ref": "BackendServiceCdnPolicy",
          "description": "Cloud CDN configuration for this BackendService. Only available for\nspecified load balancer types."
        },
        "securityPolicy": {
          "description": "[Output Only] The resource URL for the security policy associated with this\nbackend service.",
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the region where the regional backend service\nresides. This field is not applicable to global backend services.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "customRequestHeaders": {
          "type": "array",
          "description": "Headers that the load balancer adds to proxied requests. See [Creating\ncustom\nheaders](https://cloud.google.com/load-balancing/docs/custom-headers).",
          "items": {
            "type": "string"
          }
        },
        "logConfig": {
          "$ref": "BackendServiceLogConfig",
          "description": "This field denotes the logging options for the load balancer traffic served\nby this backend service. If logging is enabled, logs will be exported to\nStackdriver."
        },
        "subsetting": {
          "description": "subsetting cannot be specified with haPolicy.",
          "$ref": "Subsetting"
        },
        "connectionDraining": {
          "description": "connectionDraining cannot be specified with haPolicy.",
          "$ref": "ConnectionDraining"
        },
        "timeoutSec": {
          "type": "integer",
          "description": "The backend service timeout has a different meaning depending on the\ntype of load balancer. For more information see,\nBackend service settings.\nThe default is 30 seconds.\nThe full range of timeout values allowed goes from 1\nthrough 2,147,483,647 seconds.\n\nThis value can be overridden in the PathMatcher configuration of the\nUrlMap that references this backend service.\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.\nInstead, use maxStreamDuration.",
          "format": "int32"
        },
        "sessionAffinity": {
          "type": "string",
          "description": "Type of session affinity to use. The default is NONE.\n\nOnly NONE and HEADER_FIELD are supported\nwhen the backend service is referenced by a URL map that is bound to\ntarget gRPC proxy that has validateForProxyless field set to true.\n\nFor more details, see:\n[Session\nAffinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).\n\nsessionAffinity cannot be specified with haPolicy.",
          "enumDescriptions": [
            "2-tuple hash on packet's source and destination IP addresses. Connections\nfrom the same source IP address to the same destination IP address will be\nserved by the same backend VM while that VM remains healthy.",
            "1-tuple hash only on packet's source IP address. Connections from the\nsame source IP address will be served by the same backend VM while that VM\nremains healthy. This option can only be used for Internal TCP/UDP\nLoad Balancing.",
            "5-tuple hash on packet's source and destination IP addresses, IP protocol,\nand source and destination ports. Connections for the same IP protocol\nfrom the same source IP address and port to the same destination IP address\nand port will be served by the same backend VM while that VM remains\nhealthy. This option cannot be used for HTTP(S) load balancing.",
            "3-tuple hash on packet's source and destination IP addresses, and IP\nprotocol. Connections for the same IP protocol from the same source IP\naddress to the same destination IP address will be served by the same\nbackend VM while that VM remains healthy. This option cannot be used for\nHTTP(S) load balancing.",
            "Hash based on a cookie generated by the L7 loadbalancer.\nOnly valid for HTTP(S) load balancing.",
            "The hash is based on a user specified header field.",
            "The hash is based on a user provided cookie.",
            "No session affinity. Connections from the same client IP may go\nto any instance in the pool.",
            "Strong cookie-based affinity. Connections bearing the same cookie will be\nserved by the same backend VM while that VM remains healthy, as long as the\ncookie has not expired."
          ],
          "enum": [
            "CLIENT_IP",
            "CLIENT_IP_NO_DESTINATION",
            "CLIENT_IP_PORT_PROTO",
            "CLIENT_IP_PROTO",
            "GENERATED_COOKIE",
            "HEADER_FIELD",
            "HTTP_COOKIE",
            "NONE",
            "STRONG_COOKIE_AFFINITY"
          ]
        },
        "port": {
          "format": "int32",
          "type": "integer",
          "description": "Deprecated in favor of portName. The TCP port to connect on\nthe backend. The default value is 80.\nFor internal passthrough Network Load Balancers and external passthrough\nNetwork Load Balancers, omit port.",
          "deprecated": true
        },
        "outlierDetection": {
          "$ref": "OutlierDetection",
          "description": "Settings controlling the ejection of unhealthy backend endpoints from the\nload balancing pool of each individual proxy instance that processes the\ntraffic for the given backend service. If not set, this feature is\nconsidered disabled.\n\nResults of the outlier detection algorithm (ejection of endpoints from the\nload balancing pool and returning them back to the pool) are executed\nindependently by each proxy instance of the load balancer. In most cases,\nmore than one proxy instance handles the traffic received by a backend\nservice. Thus, it is possible that an unhealthy endpoint is detected and\nejected by only some of the proxies, and while this happens, other proxies\nmay continue to send requests to the same unhealthy endpoint until they\ndetect and eject the unhealthy endpoint.\n\nApplicable backend endpoints can be:\n   \n   - VM instances in an Instance Group\n   - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT)\n   - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT)\n   - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud\n   Functions Services \n   - Private Service Connect NEGs, that resolve to\n   Google-managed regional API endpoints or managed services published using\n   Private Service Connect\n\n\n\nApplicable backend service types can be:\n   \n   - A global backend service with the loadBalancingScheme set to\n   INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. \n   - A regional backend\n   service with the service protocol set to HTTP, HTTPS, HTTP2 or H2C, and\n   loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not\n   supported for Serverless NEGs.\n\n\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true."
        },
        "connectionTrackingPolicy": {
          "description": "Connection Tracking configuration for this BackendService. Connection\ntracking policy settings are only available for external passthrough\nNetwork Load Balancers and internal passthrough Network Load Balancers.\n\nconnectionTrackingPolicy cannot be specified with haPolicy.",
          "$ref": "BackendServiceConnectionTrackingPolicy"
        },
        "consistentHash": {
          "$ref": "ConsistentHashLoadBalancerSettings",
          "description": "Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load\nbalancing policy is applicable only for HTTP connections. The affinity to a\nparticular destination host will be lost when one or more hosts are\nadded/removed from the destination service. This field specifies parameters\nthat control consistent hashing. This field is only applicable whenlocalityLbPolicy is set to MAGLEV orRING_HASH.\n\nThis field is applicable to either:\n   \n   - A regional backend service with the service protocol set to HTTP,\n   HTTPS, HTTP2 or H2C, and load_balancing_scheme set to\n   INTERNAL_MANAGED. \n   - A global backend service with the\n   load_balancing_scheme set to INTERNAL_SELF_MANAGED."
        },
        "affinityCookieTtlSec": {
          "description": "Lifetime of cookies in seconds. This setting is applicable to Application\nLoad Balancers and Traffic Director and requires\nGENERATED_COOKIE or HTTP_COOKIE session affinity.\n\nIf set to 0, the cookie is non-persistent and lasts only until\nthe end of the browser session (or equivalent). The maximum allowed value\nis two weeks (1,209,600).\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.",
          "format": "int32",
          "type": "integer"
        },
        "networkPassThroughLbTrafficPolicy": {
          "description": "Configures traffic steering properties of internal passthrough Network\nLoad Balancers.\n\nnetworkPassThroughLbTrafficPolicy cannot be specified with haPolicy.",
          "$ref": "BackendServiceNetworkPassThroughLbTrafficPolicy"
        },
        "compressionMode": {
          "description": "Compress text responses using Brotli or gzip compression, based on\nthe client's Accept-Encoding header.",
          "enum": [
            "AUTOMATIC",
            "DISABLED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Automatically uses the best compression based on the Accept-Encoding\nheader sent by the client.",
            "Disables compression. Existing compressed responses cached by\nCloud CDN will not be served to clients."
          ]
        },
        "securitySettings": {
          "description": "This field specifies the security settings that apply to this backend\nservice. This field is applicable to a global backend service with the\nload_balancing_scheme set to INTERNAL_SELF_MANAGED.",
          "$ref": "SecuritySettings"
        },
        "serviceBindings": {
          "description": "URLs of networkservices.ServiceBinding resources.\n\nCan only be set if load balancing scheme is INTERNAL_SELF_MANAGED.\nIf set, lists of backends and health checks must be both empty.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "localityLbPolicies": {
          "type": "array",
          "description": "A list of locality load-balancing policies to be used in order of\npreference. When you use localityLbPolicies, you must set at least one\nvalue for either the localityLbPolicies[].policy or the\nlocalityLbPolicies[].customPolicy field. localityLbPolicies overrides any\nvalue set in the localityLbPolicy field.\n\nFor an example of how to use this field, seeDefine\na list of preferred policies.\n\nCaution: This field and its children are intended for use in a service mesh\nthat includes gRPC clients only. Envoy proxies can't use backend services\nthat have this configuration.",
          "items": {
            "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig"
          }
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "localityLbPolicy": {
          "type": "string",
          "description": "The load balancing algorithm used within the scope of the locality. The\npossible values are:\n   \n   - ROUND_ROBIN: This is a simple policy in which each healthy\n   backend is selected in round robin order. This is the default.\n   - LEAST_REQUEST: An O(1) algorithm which\n   selects two random healthy hosts and picks the host which has fewer active\n   requests.\n   - RING_HASH: The ring/modulo hash load balancer implements\n   consistent hashing to backends. The algorithm has the property that the\n   addition/removal of a host from a set of N hosts only affects 1/N of the\n   requests.\n   - RANDOM: The load balancer selects a random healthy\n   host.\n   - ORIGINAL_DESTINATION: Backend host is selected\n   based on the client connection metadata, i.e., connections are opened to\n   the same address as the destination address of the incoming connection\n   before the connection was redirected to the load balancer.\n   - MAGLEV: used as a drop in replacement for the ring hash\n   load balancer. Maglev is not as stable as ring hash but has faster table\n   lookup build times and host selection times. For more information about\n   Maglev, see Maglev:\n   A Fast and Reliable Software Network Load Balancer.\n   - WEIGHTED_ROUND_ROBIN: Per-endpoint Weighted Round Robin\n   Load Balancing using weights computed from Backend reported Custom Metrics.\n   If set, the Backend Service responses are expected to contain non-standard\n   HTTP response header field Endpoint-Load-Metrics. The reported\n   metrics to use for computing the weights are specified via thecustomMetrics field.\n   - WEIGHTED_MAGLEV: Per-endpoint weighted load balancing via\n   health check reported weights. If set, the backend service must configure\n   an HTTP-based Health Check, and health check replies are expected to\n   contain the non-standard HTTP response header fieldX-Load-Balancing-Endpoint-Weight to specify the per-endpoint\n   weights. If set, load balancing is weighted based on the per-endpoint\n   weights reported in the last processed health check replies, as long as\n   every instance either reported a valid weight or had UNAVAILABLE_WEIGHT.\n   Otherwise, load balancing remains equal-weight.\n\n\n\nThis field is applicable to either:\n   \n   - A regional backend service with the service protocol set to HTTP,\n   HTTPS, HTTP2 or H2C, and load_balancing_scheme set to\n   INTERNAL_MANAGED. \n   - A global backend service with the\n   load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or\n   EXTERNAL_MANAGED.\n\n\n\nIf sessionAffinity is not configured—that is, if session\naffinity remains at the default value of NONE—then the\ndefault value for localityLbPolicy\nis ROUND_ROBIN. If session affinity is set to a value other\nthan NONE,\nthen the default value for localityLbPolicy isMAGLEV.\n\nOnly ROUND_ROBIN and RING_HASH are supported\nwhen the backend service is referenced by a URL map that is bound to\ntarget gRPC proxy that has validateForProxyless field set to true.\n\nlocalityLbPolicy cannot be specified with haPolicy.",
          "enum": [
            "INVALID_LB_POLICY",
            "LEAST_REQUEST",
            "MAGLEV",
            "ORIGINAL_DESTINATION",
            "RANDOM",
            "RING_HASH",
            "ROUND_ROBIN",
            "WEIGHTED_GCP_RENDEZVOUS",
            "WEIGHTED_MAGLEV",
            "WEIGHTED_ROUND_ROBIN"
          ],
          "enumDescriptions": [
            "",
            "An O(1) algorithm which selects two random healthy hosts and\npicks the host which has fewer active requests.",
            "This algorithm implements consistent hashing to backends. Maglev can be\nused as a drop in replacement for the ring hash load balancer. Maglev is\nnot as stable as ring hash but has faster table lookup build times and\nhost selection times. For more information about Maglev, seeMaglev:\nA Fast and Reliable Software Network Load Balancer.",
            "Backend host is selected based on the client connection metadata, i.e.,\nconnections are opened to the same address as the destination address of\nthe incoming connection before the connection was redirected to the load\nbalancer.",
            "The load balancer selects a random healthy host.",
            "The ring/modulo hash load balancer implements consistent hashing to\nbackends. The algorithm has the property that the addition/removal\nof a host from a set of N hosts only affects 1/N of the requests.",
            "This is a simple policy in which each healthy backend is selected\nin round robin order. This is the default.",
            "Per-instance weighted Load Balancing via health check reported weights.\nIn internal passthrough network load balancing, it is weighted\nrendezvous hashing.\nThis option is only supported in internal passthrough network load\nbalancing.",
            "Per-instance weighted Load Balancing via health check reported weights.\nIf set, the Backend Service must configure a non legacy HTTP-based Health\nCheck, and health check replies are expected to contain non-standard HTTP\nresponse header field X-Load-Balancing-Endpoint-Weight to specify the\nper-instance weights.\nIf set, Load Balancing is weighted based on the\nper-instance weights reported in the last processed health check replies,\nas long as every instance either reported a valid weight or had\nUNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight.\nThis option is only supported in Network Load Balancing.",
            "Per-endpoint weighted round-robin Load Balancing using weights computed\nfrom Backend reported Custom Metrics. If set, the Backend Service\nresponses are expected to contain non-standard HTTP response header field\nEndpoint-Load-Metrics. The reported metrics\nto use for computing the weights are specified via the\ncustomMetrics fields."
          ]
        },
        "metadatas": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Deployment metadata associated with the resource to be set by a GKE hub\ncontroller and read by the backend RCTH",
          "type": "object"
        },
        "loadBalancingScheme": {
          "enum": [
            "EXTERNAL",
            "EXTERNAL_MANAGED",
            "INTERNAL",
            "INTERNAL_MANAGED",
            "INTERNAL_SELF_MANAGED",
            "INVALID_LOAD_BALANCING_SCHEME"
          ],
          "enumDescriptions": [
            "Signifies that this will be used for classic Application Load Balancers,\nglobal external proxy Network Load Balancers,\nor external passthrough Network Load Balancers.",
            "Signifies that this will be used for global external Application Load\nBalancers, regional external Application Load Balancers, or regional\nexternal proxy Network Load Balancers.",
            "Signifies that this will be used for internal passthrough Network Load\nBalancers.",
            "Signifies that this will be used for internal Application Load Balancers.",
            "Signifies that this will be used by Traffic Director.",
            ""
          ],
          "description": "Specifies the load balancer type. A backend service\ncreated for one type of load balancer cannot be used with another.\nFor more information, refer to\nBackend services product and scheme table.",
          "type": "string"
        },
        "externalManagedMigrationTestingPercentage": {
          "description": "Determines the fraction of requests that should be processed by the Global\nexternal Application Load Balancer.\n\nThe value of this field must be in the range [0, 100].\n\nSession affinity options will slightly affect this routing behavior, for\nmore details, see:Session\nAffinity.\n\nThis value can only be set if the loadBalancingScheme in the BackendService\nis set to EXTERNAL (when using the classic Application Load Balancer) and\nthe migration state is TEST_BY_PERCENTAGE.",
          "type": "number",
          "format": "float"
        },
        "strongSessionAffinityCookie": {
          "$ref": "BackendServiceHttpCookie",
          "description": "Describes the HTTP cookie used for stateful session affinity. This field is\napplicable and required if the sessionAffinity is set toSTRONG_COOKIE_AFFINITY."
        },
        "healthChecks": {
          "description": "The list of URLs to the healthChecks, httpHealthChecks (legacy), or\nhttpsHealthChecks (legacy) resource for health checking this backend\nservice. Not all backend services support legacy health checks. See\nLoad balancer guide. Currently, at most one health check can be\nspecified for each backend service. Backend services with\ninstance group or zonal NEG backends must have a health check unless\nhaPolicy is specified. Backend services with internet or serverless NEG\nbackends must not have a health check.\n\nhealthChecks[] cannot be specified with haPolicy.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "kind": {
          "default": "compute#backendService",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Always compute#backendService\nfor backend services.",
          "type": "string"
        },
        "network": {
          "description": "The URL of the network to which this backend service belongs.\n\nThis field must be set for Internal Passthrough Network Load Balancers when\nthe haPolicy is enabled, and for External Passthrough Network Load\nBalancers when the haPolicy fastIpMove is enabled.\n\nThis field can only be specified when the load balancing scheme is set toINTERNAL, or when the load balancing scheme is set toEXTERNAL and haPolicy fastIpMove is enabled.",
          "type": "string"
        },
        "customResponseHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Headers that the load balancer adds to proxied responses. See [Creating\ncustom\nheaders](https://cloud.google.com/load-balancing/docs/custom-headers)."
        },
        "fingerprint": {
          "format": "byte",
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a BackendService. An up-to-date fingerprint must be provided in\norder to update the BackendService, otherwise the request will\nfail with error 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a BackendService.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents a Backend Service resource.\n\nA backend service defines how Google Cloud load balancers distribute traffic.\nThe backend service configuration contains a set of values, such as the\nprotocol used to connect to backends, various distribution and session\nsettings, health checks, and timeouts. These settings provide fine-grained\ncontrol over how your load balancer behaves. Most of the settings have\ndefault values that allow for easy configuration if you need to get started\nquickly.\n\nBackend services in Google Compute Engine can be either regionally or\nglobally scoped.\n\n* [Global](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices)\n* [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices)\n\nFor more information, seeBackend\nServices."
    },
    "ResourcePolicyDiskConsistencyGroupPolicy": {
      "description": "Resource policy for disk consistency groups.",
      "id": "ResourcePolicyDiskConsistencyGroupPolicy",
      "type": "object",
      "properties": {}
    },
    "BackendServiceGroupHealth": {
      "type": "object",
      "properties": {
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#backendServiceGroupHealth for the health of backend\nservices.",
          "type": "string",
          "readOnly": true,
          "default": "compute#backendServiceGroupHealth"
        },
        "annotations": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Metadata defined as annotations on the network endpoint group.",
          "type": "object"
        },
        "healthStatus": {
          "description": "Health state of the backend instances or endpoints in requested instance or\nnetwork endpoint group, determined based on configured health checks.",
          "items": {
            "$ref": "HealthStatus"
          },
          "type": "array"
        }
      },
      "id": "BackendServiceGroupHealth"
    },
    "RegionDiskTypeList": {
      "id": "RegionDiskTypeList",
      "properties": {
        "items": {
          "type": "array",
          "description": "A list of DiskType resources.",
          "items": {
            "$ref": "DiskType"
          }
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#regionDiskTypeList for region disk types.",
          "readOnly": true,
          "type": "string",
          "default": "compute#regionDiskTypeList"
        }
      },
      "type": "object"
    },
    "InstanceFlexibilityPolicyInstanceSelection": {
      "description": "Specification of machine type to use. Every position inside this message\nis an alternative.\nThe count specified in the shape flexibility must not exceed the number\nof entries in per_instance_properties or the capacity of the\nname_pattern, if used.",
      "id": "InstanceFlexibilityPolicyInstanceSelection",
      "properties": {
        "disks": {
          "items": {
            "$ref": "AttachedDisk"
          },
          "type": "array",
          "description": "Disks to be attached to the instances created from in this selection.\nThey override the disks specified in the instance properties."
        },
        "rank": {
          "description": "Rank when prioritizing the shape flexibilities.\nThe instance selections with rank are considered\nfirst, in the ascending order of the rank.\nIf not set, defaults to 0.",
          "format": "int64",
          "type": "string"
        },
        "machineTypes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Alternative machine types to use for instances that are created from\nthese properties. This field only accepts a machine type names, for\nexample `n2-standard-4` and not URLs or partial URLs."
        },
        "minCpuPlatform": {
          "type": "string",
          "description": "Name of the minimum CPU platform to be used by this instance selection.\ne.g. 'Intel Ice Lake'."
        }
      },
      "type": "object"
    },
    "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption": {
      "id": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption",
      "properties": {
        "headerName": {
          "description": "The name of the header to set.",
          "type": "string"
        },
        "headerValue": {
          "type": "string",
          "description": "The value to set the named header to."
        }
      },
      "type": "object"
    },
    "InterconnectApplicationAwareInterconnectBandwidthPercentage": {
      "properties": {
        "trafficClass": {
          "description": "TrafficClass whose bandwidth percentage is being specified.",
          "type": "string",
          "enumDescriptions": [
            "Traffic Class 1, corresponding to DSCP ranges (0-7) 000xxx.",
            "Traffic Class 2, corresponding to DSCP ranges (8-15) 001xxx.",
            "Traffic Class 3, corresponding to DSCP ranges (16-23) 010xxx.",
            "Traffic Class 4, corresponding to DSCP ranges (24-31) 011xxx.",
            "Traffic Class 5, corresponding to DSCP ranges (32-47) 10xxxx.",
            "Traffic Class 6, corresponding to DSCP ranges (48-63) 11xxxx."
          ],
          "enum": [
            "TC1",
            "TC2",
            "TC3",
            "TC4",
            "TC5",
            "TC6"
          ]
        },
        "percentage": {
          "type": "integer",
          "format": "uint32",
          "description": "Bandwidth percentage for a specific traffic class."
        }
      },
      "type": "object",
      "description": "Specify bandwidth percentages [1-100] for various traffic classes in\nBandwidthPercentagePolicy. The sum of all percentages must equal 100.\nAll traffic classes must have a percentage value specified.",
      "id": "InterconnectApplicationAwareInterconnectBandwidthPercentage"
    },
    "HttpRedirectAction": {
      "id": "HttpRedirectAction",
      "type": "object",
      "description": "Specifies settings for an HTTP redirect.",
      "properties": {
        "prefixRedirect": {
          "description": "The prefix that replaces the prefixMatch specified in\nthe HttpRouteRuleMatch, retaining the remaining portion\nof the URL before redirecting the request.\n\nprefixRedirect cannot be supplied together withpathRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request is used for the redirect.\n\nThe value must be from 1 to 1024 characters.",
          "type": "string"
        },
        "hostRedirect": {
          "description": "The host that is used in the redirect response instead of the one that\nwas supplied in the request.\n\nThe value must be from 1 to 255\ncharacters.",
          "type": "string"
        },
        "redirectResponseCode": {
          "type": "string",
          "enumDescriptions": [
            "Http Status Code 302 - Found.",
            "Http Status Code 301 - Moved Permanently.",
            "Http Status Code 308 - Permanent Redirect maintaining HTTP method.",
            "Http Status Code 303 - See Other.",
            "Http Status Code 307 - Temporary Redirect maintaining HTTP method."
          ],
          "description": "The HTTP Status code to use for this RedirectAction.\n\nSupported values are:\n   \n   - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds\n   to 301.\n   - FOUND, which corresponds to 302.\n   - SEE_OTHER which corresponds to 303.\n   - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request\n   method is retained.\n   - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request\n   method is retained.",
          "enum": [
            "FOUND",
            "MOVED_PERMANENTLY_DEFAULT",
            "PERMANENT_REDIRECT",
            "SEE_OTHER",
            "TEMPORARY_REDIRECT"
          ]
        },
        "httpsRedirect": {
          "type": "boolean",
          "description": "If set to true, the URL scheme in the redirected request is\nset to HTTPS.\nIf set to false, the URL scheme of the redirected request\nremains the same as that of the request.\n\nThis must only be set for URL maps used inTargetHttpProxys. Setting this true forTargetHttpsProxy is not permitted.\n\nThe default is set to false."
        },
        "stripQuery": {
          "type": "boolean",
          "description": "If set to true, any accompanying query portion of the original\nURL is\nremoved before redirecting the request. If set to false, the\nquery portion of the original URL is retained.\n\nThe default is set to false."
        },
        "pathRedirect": {
          "type": "string",
          "description": "The path that is used in the redirect response instead of the one\nthat was supplied in the request.\n\npathRedirect cannot be supplied together withprefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request is used for the redirect.\n\nThe value must be from 1 to 1024 characters."
        }
      }
    },
    "AutoscalerAggregatedList": {
      "type": "object",
      "id": "AutoscalerAggregatedList",
      "properties": {
        "unreachables": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder",
          "items": {
            "type": "string"
          }
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "items": {
          "type": "object",
          "description": "A list of AutoscalersScopedList resources.",
          "additionalProperties": {
            "description": "[Output Only] Name of the scope containing this set of autoscalers.",
            "$ref": "AutoscalersScopedList"
          }
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#autoscalerAggregatedList for aggregated lists of\nautoscalers.",
          "type": "string",
          "default": "compute#autoscalerAggregatedList",
          "readOnly": true
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "description": "[Output Only] Informational warning message."
        }
      }
    },
    "NetworksGetEffectiveFirewallsResponse": {
      "properties": {
        "firewalls": {
          "type": "array",
          "description": "Effective firewalls on the network.",
          "items": {
            "$ref": "Firewall"
          }
        },
        "firewallPolicys": {
          "items": {
            "$ref": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy"
          },
          "description": "[Output Only] Effective firewalls from firewall policy. It returns Global\nNetwork Firewall Policies and Hierarchical Firewall Policies. UseregionNetworkFirewallPolicies.getEffectiveFirewalls to get\nRegional Network Firewall Policies as well.",
          "type": "array"
        }
      },
      "id": "NetworksGetEffectiveFirewallsResponse",
      "type": "object"
    },
    "RouteParams": {
      "description": "Additional route parameters.",
      "id": "RouteParams",
      "properties": {
        "resourceManagerTags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid."
        }
      },
      "type": "object"
    },
    "RolloutRolloutEntityOrchestratedEntity": {
      "type": "object",
      "id": "RolloutRolloutEntityOrchestratedEntity",
      "properties": {
        "orchestrationSource": {
          "type": "string",
          "description": "Required. Fully qualified resource name of the resource which contains the source\nof truth of the configuration being rolled out across\nlocations/projects. For example, in the case of a global Rollout which\nis applied across regions, this contains the name of the global\nresource created by the user which contains a payload for a resource\nthat is orchestrated across regions. This follows the following format:\n//.googleapis.com/projects//locations/global//\ne.g.\n//osconfig.googleapis.com/projects/1/locations/global/policyOrchestrators/po1"
        },
        "conflictBehavior": {
          "description": "Required. Specifies the behavior of the Rollout if an out of band update is\ndetected in a project during a Rollout. It can be one of the following\nvalues:\n1) overwrite : Overwrite the local value with the rollout value.\n2) no_overwrite : Do not overwrite the local value with the rollout\nvalue.",
          "type": "string"
        },
        "orchestrationAction": {
          "description": "Required. Orchestration action during the Rollout. It can be one of the following\nvalues:\n1) \"update\": Resources will be updated by the rollout.\n2) \"delete\": Resources will be deleted by the rollout.",
          "type": "string"
        }
      },
      "description": "This message is used if the resource type follows the Orchestrated\nintegration model with ProgressiveRollout."
    },
    "FirewallParams": {
      "properties": {
        "resourceManagerTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid."
        }
      },
      "description": "Additional firewall parameters.",
      "type": "object",
      "id": "FirewallParams"
    },
    "ProjectsSetCloudArmorTierRequest": {
      "properties": {
        "cloudArmorTier": {
          "enum": [
            "CA_ENTERPRISE_ANNUAL",
            "CA_ENTERPRISE_PAYGO",
            "CA_STANDARD"
          ],
          "enumDescriptions": [
            "Enterprise tier protection billed annually.",
            "Enterprise tier protection billed monthly.",
            "Standard protection."
          ],
          "description": "Managed protection tier to be set.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ProjectsSetCloudArmorTierRequest"
    },
    "MachineTypesScopedList": {
      "id": "MachineTypesScopedList",
      "type": "object",
      "properties": {
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              }
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            }
          },
          "description": "[Output Only] An informational warning that appears when the machine types\nlist is empty.",
          "type": "object"
        },
        "machineTypes": {
          "description": "[Output Only] A list of machine types contained in this scope.",
          "type": "array",
          "items": {
            "$ref": "MachineType"
          }
        }
      }
    },
    "BgpRoute": {
      "properties": {
        "med": {
          "type": "integer",
          "description": "Output only. [Output only] BGP multi-exit discriminator",
          "readOnly": true,
          "format": "uint32"
        },
        "communities": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. [Output only] BGP communities in human-readable A:B format.",
          "readOnly": true
        },
        "origin": {
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output only] BGP origin (EGP, IGP or INCOMPLETE)",
          "enum": [
            "BGP_ORIGIN_EGP",
            "BGP_ORIGIN_IGP",
            "BGP_ORIGIN_INCOMPLETE"
          ]
        },
        "asPaths": {
          "description": "Output only. [Output only] AS-PATH for the route",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "BgpRouteAsPath"
          }
        },
        "destination": {
          "description": "Output only. [Output only] Destination IP range for the route, in human-readable CIDR\nformat",
          "$ref": "BgpRouteNetworkLayerReachabilityInformation",
          "readOnly": true
        }
      },
      "id": "BgpRoute",
      "type": "object"
    },
    "LocationPolicyLocationConstraints": {
      "description": "Per-zone constraints on location policy for this zone.",
      "id": "LocationPolicyLocationConstraints",
      "properties": {
        "maxCount": {
          "description": "Maximum number of items that are allowed to be placed in this zone.\nThe value must be non-negative.",
          "type": "integer",
          "format": "int32"
        }
      },
      "type": "object"
    },
    "Policy": {
      "type": "object",
      "id": "Policy",
      "properties": {
        "etag": {
          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\n**Important:** If you use IAM Conditions, you must include the `etag` field\nwhenever you call `setIamPolicy`. If you omit this field, then IAM allows\nyou to overwrite a version `3` policy with a version `1` policy, and all of\nthe conditions in the version `3` policy are lost.",
          "format": "byte",
          "type": "string"
        },
        "auditConfigs": {
          "type": "array",
          "items": {
            "$ref": "AuditConfig"
          },
          "description": "Specifies cloud audit logging configuration for this policy."
        },
        "bindings": {
          "description": "Associates a list of `members`, or principals, with a `role`. Optionally,\nmay specify a `condition` that determines how and when the `bindings` are\napplied. Each of the `bindings` must contain at least one principal.\n\nThe `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250\nof these principals can be Google groups. Each occurrence of a principal\ncounts towards these limits. For example, if the `bindings` grant 50\ndifferent roles to `user:alice@example.com`, and not to any other\nprincipal, then you can add another 1,450 principals to the `bindings` in\nthe `Policy`.",
          "type": "array",
          "items": {
            "$ref": "Binding"
          }
        },
        "version": {
          "description": "Specifies the format of the policy.\n\nValid values are `0`, `1`, and `3`. Requests that specify an invalid value\nare rejected.\n\nAny operation that affects conditional role bindings must specify version\n`3`. This requirement applies to the following operations:\n\n* Getting a policy that includes a conditional role binding\n* Adding a conditional role binding to a policy\n* Changing a conditional role binding in a policy\n* Removing any role binding, with or without a condition, from a policy\n  that includes conditions\n\n**Important:** If you use IAM Conditions, you must include the `etag` field\nwhenever you call `setIamPolicy`. If you omit this field, then IAM allows\nyou to overwrite a version `3` policy with a version `1` policy, and all of\nthe conditions in the version `3` policy are lost.\n\nIf a policy does not include any conditions, operations on that policy may\nspecify any valid version or leave the field unset.\n\nTo learn which resources support conditions in their IAM policies, see the\n[IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "An Identity and Access Management (IAM) policy, which specifies access\ncontrols for Google Cloud resources.\n\n\nA `Policy` is a collection of `bindings`. A `binding` binds one or more\n`members`, or principals, to a single `role`. Principals can be user\naccounts, service accounts, Google groups, and domains (such as G Suite). A\n`role` is a named list of permissions; each `role` can be an IAM predefined\nrole or a user-created custom role.\n\nFor some types of Google Cloud resources, a `binding` can also specify a\n`condition`, which is a logical expression that allows access to a resource\nonly if the expression evaluates to `true`. A condition can add constraints\nbased on attributes of the request, the resource, or both. To learn which\nresources support conditions in their IAM policies, see the\n[IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).\n\n**JSON example:**\n\n```\n    {\n      \"bindings\": [\n        {\n          \"role\": \"roles/resourcemanager.organizationAdmin\",\n          \"members\": [\n            \"user:mike@example.com\",\n            \"group:admins@example.com\",\n            \"domain:google.com\",\n            \"serviceAccount:my-project-id@appspot.gserviceaccount.com\"\n          ]\n        },\n        {\n          \"role\": \"roles/resourcemanager.organizationViewer\",\n          \"members\": [\n            \"user:eve@example.com\"\n          ],\n          \"condition\": {\n            \"title\": \"expirable access\",\n            \"description\": \"Does not grant access after Sep 2020\",\n            \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\",\n          }\n        }\n      ],\n      \"etag\": \"BwWWja0YfJA=\",\n      \"version\": 3\n    }\n```\n\n**YAML example:**\n\n```\n    bindings:\n    - members:\n      - user:mike@example.com\n      - group:admins@example.com\n      - domain:google.com\n      - serviceAccount:my-project-id@appspot.gserviceaccount.com\n      role: roles/resourcemanager.organizationAdmin\n    - members:\n      - user:eve@example.com\n      role: roles/resourcemanager.organizationViewer\n      condition:\n        title: expirable access\n        description: Does not grant access after Sep 2020\n        expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\n    etag: BwWWja0YfJA=\n    version: 3\n```\n\nFor a description of IAM and its features, see the\n[IAM documentation](https://cloud.google.com/iam/docs/)."
    },
    "Quota": {
      "id": "Quota",
      "properties": {
        "metric": {
          "type": "string",
          "description": "[Output Only] Name of the quota metric.",
          "enum": [
            "A2_CPUS",
            "AFFINITY_GROUPS",
            "AUTOSCALERS",
            "BACKEND_BUCKETS",
            "BACKEND_SERVICES",
            "C2D_CPUS",
            "C2_CPUS",
            "C3_CPUS",
            "COMMITMENTS",
            "COMMITTED_A2_CPUS",
            "COMMITTED_C2D_CPUS",
            "COMMITTED_C2_CPUS",
            "COMMITTED_C3_CPUS",
            "COMMITTED_CPUS",
            "COMMITTED_E2_CPUS",
            "COMMITTED_LICENSES",
            "COMMITTED_LOCAL_SSD_TOTAL_GB",
            "COMMITTED_M3_CPUS",
            "COMMITTED_MEMORY_OPTIMIZED_CPUS",
            "COMMITTED_N2A_CPUS",
            "COMMITTED_N2D_CPUS",
            "COMMITTED_N2_CPUS",
            "COMMITTED_NVIDIA_A100_80GB_GPUS",
            "COMMITTED_NVIDIA_A100_GPUS",
            "COMMITTED_NVIDIA_H100_GPUS",
            "COMMITTED_NVIDIA_K80_GPUS",
            "COMMITTED_NVIDIA_L4_GPUS",
            "COMMITTED_NVIDIA_P100_GPUS",
            "COMMITTED_NVIDIA_P4_GPUS",
            "COMMITTED_NVIDIA_T4_GPUS",
            "COMMITTED_NVIDIA_V100_GPUS",
            "COMMITTED_T2A_CPUS",
            "COMMITTED_T2D_CPUS",
            "COMMITTED_Z3_CPUS",
            "CPUS",
            "CPUS_ALL_REGIONS",
            "DISKS_TOTAL_GB",
            "E2_CPUS",
            "EXTERNAL_MANAGED_FORWARDING_RULES",
            "EXTERNAL_NETWORK_LB_FORWARDING_RULES",
            "EXTERNAL_PROTOCOL_FORWARDING_RULES",
            "EXTERNAL_VPN_GATEWAYS",
            "FIREWALLS",
            "FORWARDING_RULES",
            "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES",
            "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES",
            "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES",
            "GLOBAL_INTERNAL_ADDRESSES",
            "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES",
            "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES",
            "GPUS_ALL_REGIONS",
            "HDB_TOTAL_GB",
            "HDB_TOTAL_IOPS",
            "HDB_TOTAL_THROUGHPUT",
            "HEALTH_CHECKS",
            "IMAGES",
            "INSTANCES",
            "INSTANCE_GROUPS",
            "INSTANCE_GROUP_MANAGERS",
            "INSTANCE_TEMPLATES",
            "INTERCONNECTS",
            "INTERCONNECT_ATTACHMENTS_PER_REGION",
            "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS",
            "INTERCONNECT_TOTAL_GBPS",
            "INTERNAL_ADDRESSES",
            "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES",
            "IN_PLACE_SNAPSHOTS",
            "IN_USE_ADDRESSES",
            "IN_USE_BACKUP_SCHEDULES",
            "IN_USE_SNAPSHOT_SCHEDULES",
            "LOCAL_SSD_TOTAL_GB",
            "M1_CPUS",
            "M2_CPUS",
            "M3_CPUS",
            "MACHINE_IMAGES",
            "N2A_CPUS",
            "N2D_CPUS",
            "N2_CPUS",
            "NETWORKS",
            "NETWORK_ATTACHMENTS",
            "NETWORK_ENDPOINT_GROUPS",
            "NETWORK_FIREWALL_POLICIES",
            "NET_LB_SECURITY_POLICIES_PER_REGION",
            "NET_LB_SECURITY_POLICY_RULES_PER_REGION",
            "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION",
            "NODE_GROUPS",
            "NODE_TEMPLATES",
            "NVIDIA_A100_80GB_GPUS",
            "NVIDIA_A100_GPUS",
            "NVIDIA_K80_GPUS",
            "NVIDIA_L4_GPUS",
            "NVIDIA_P100_GPUS",
            "NVIDIA_P100_VWS_GPUS",
            "NVIDIA_P4_GPUS",
            "NVIDIA_P4_VWS_GPUS",
            "NVIDIA_T4_GPUS",
            "NVIDIA_T4_VWS_GPUS",
            "NVIDIA_V100_GPUS",
            "PACKET_MIRRORINGS",
            "PD_EXTREME_TOTAL_PROVISIONED_IOPS",
            "PREEMPTIBLE_CPUS",
            "PREEMPTIBLE_LOCAL_SSD_GB",
            "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS",
            "PREEMPTIBLE_NVIDIA_A100_GPUS",
            "PREEMPTIBLE_NVIDIA_H100_GPUS",
            "PREEMPTIBLE_NVIDIA_K80_GPUS",
            "PREEMPTIBLE_NVIDIA_L4_GPUS",
            "PREEMPTIBLE_NVIDIA_P100_GPUS",
            "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS",
            "PREEMPTIBLE_NVIDIA_P4_GPUS",
            "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS",
            "PREEMPTIBLE_NVIDIA_T4_GPUS",
            "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS",
            "PREEMPTIBLE_NVIDIA_V100_GPUS",
            "PREEMPTIBLE_TPU_LITE_DEVICE_V5",
            "PREEMPTIBLE_TPU_LITE_PODSLICE_V5",
            "PREEMPTIBLE_TPU_PODSLICE_V4",
            "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK",
            "PSC_INTERNAL_LB_FORWARDING_RULES",
            "PUBLIC_ADVERTISED_PREFIXES",
            "PUBLIC_DELEGATED_PREFIXES",
            "REGIONAL_AUTOSCALERS",
            "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES",
            "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES",
            "REGIONAL_INSTANCE_GROUP_MANAGERS",
            "REGIONAL_INTERNAL_LB_BACKEND_SERVICES",
            "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES",
            "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES",
            "RESERVATIONS",
            "RESOURCE_POLICIES",
            "ROUTERS",
            "ROUTES",
            "SECURITY_POLICIES",
            "SECURITY_POLICIES_PER_REGION",
            "SECURITY_POLICY_ADVANCED_RULES_PER_REGION",
            "SECURITY_POLICY_CEVAL_RULES",
            "SECURITY_POLICY_RULES",
            "SECURITY_POLICY_RULES_PER_REGION",
            "SERVICE_ATTACHMENTS",
            "SNAPSHOTS",
            "SSD_TOTAL_GB",
            "SSL_CERTIFICATES",
            "SSL_POLICIES",
            "STATIC_ADDRESSES",
            "STATIC_BYOIP_ADDRESSES",
            "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES",
            "SUBNETWORKS",
            "T2A_CPUS",
            "T2D_CPUS",
            "TARGET_HTTPS_PROXIES",
            "TARGET_HTTP_PROXIES",
            "TARGET_INSTANCES",
            "TARGET_POOLS",
            "TARGET_SSL_PROXIES",
            "TARGET_TCP_PROXIES",
            "TARGET_VPN_GATEWAYS",
            "TPU_LITE_DEVICE_V5",
            "TPU_LITE_PODSLICE_V5",
            "TPU_PODSLICE_V4",
            "URL_MAPS",
            "VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES",
            "VPN_GATEWAYS",
            "VPN_TUNNELS",
            "XPN_SERVICE_PROJECTS"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "Guest CPUs",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "The total number of snapshots allowed for a single project.",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ]
        },
        "limit": {
          "type": "number",
          "format": "double",
          "description": "[Output Only] Quota limit for this metric."
        },
        "usage": {
          "format": "double",
          "type": "number",
          "description": "[Output Only] Current usage of this metric."
        },
        "owner": {
          "description": "[Output Only] Owning resource. This is the resource on which this quota\nis applied.",
          "type": "string"
        }
      },
      "description": "A quotas entry.",
      "type": "object"
    },
    "PacketIntervals": {
      "properties": {
        "type": {
          "enum": [
            "LOOPBACK",
            "RECEIVE",
            "TRANSMIT",
            "TYPE_UNSPECIFIED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Only applies to Echo packets. This shows the intervals between sending\nand receiving the same packet.",
            "Intervals between received packets.",
            "Intervals between transmitted packets.",
            ""
          ],
          "description": "The type of packets for which inter-packet intervals were computed."
        },
        "avgMs": {
          "type": "string",
          "format": "int64",
          "description": "Average observed inter-packet interval in milliseconds."
        },
        "numIntervals": {
          "description": "Number of inter-packet intervals from which these statistics were derived.",
          "type": "string",
          "format": "int64"
        },
        "minMs": {
          "description": "Minimum observed inter-packet interval in milliseconds.",
          "type": "string",
          "format": "int64"
        },
        "maxMs": {
          "description": "Maximum observed inter-packet interval in milliseconds.",
          "type": "string",
          "format": "int64"
        },
        "duration": {
          "enumDescriptions": [
            "",
            "",
            "From BfdSession object creation time.",
            ""
          ],
          "enum": [
            "DURATION_UNSPECIFIED",
            "HOUR",
            "MAX",
            "MINUTE"
          ],
          "type": "string",
          "description": "From how long ago in the past these intervals were observed."
        }
      },
      "type": "object",
      "id": "PacketIntervals",
      "description": "Next free: 7"
    },
    "InterconnectAttachmentGroupsListResponse": {
      "properties": {
        "etag": {
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for this resource."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "InterconnectAttachmentGroup"
          },
          "description": "A list of InterconnectAttachmentGroup resources.",
          "type": "array"
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#interconnectAttachmentGroup"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "unreachables": {
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface:\nMixerListResponseWithEtagBuilder",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "InterconnectAttachmentGroupsListResponse",
      "type": "object"
    },
    "HTTPHealthCheck": {
      "id": "HTTPHealthCheck",
      "properties": {
        "response": {
          "type": "string",
          "description": "Creates a content-based HTTP health check. In addition to the required\nHTTP 200 (OK) status code, you can configure the health check to pass only\nwhen the backend sends this specific ASCII response string within the first\n1024 bytes of the HTTP response body. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http"
        },
        "host": {
          "type": "string",
          "description": "The value of the host header in the HTTP health check request. If left\nempty (default value), the host header is set to the destination IP address\nto which health check packets are sent. The destination IP address depends\non the type of load balancer. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest"
        },
        "portName": {
          "description": "Not supported.",
          "type": "string"
        },
        "port": {
          "type": "integer",
          "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 80. Valid values are 1 through65535.",
          "format": "int32"
        },
        "portSpecification": {
          "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Also supported in legacy HTTP health checks for target pools.\nThe health check supports all backends supported by the backend service\nprovided the backend can be health checked. For example,GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT\nnetwork endpoint groups, and instance group backends. \nUSE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools.  Not supported by backend services for pass-through load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group.  For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.",
          "enum": [
            "USE_FIXED_PORT",
            "USE_NAMED_PORT",
            "USE_SERVING_PORT"
          ],
          "type": "string",
          "enumDescriptions": [
            "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.",
            "Not supported.",
            "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports."
          ]
        },
        "proxyHeader": {
          "type": "string",
          "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "NONE",
            "PROXY_V1"
          ]
        },
        "requestPath": {
          "description": "The request path of the HTTP health check request. The default value is/. Must comply withRFC3986.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NodeType": {
      "properties": {
        "cpuPlatform": {
          "description": "[Output Only] The CPU platform used by this node type.",
          "type": "string"
        },
        "zone": {
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the zone where the node type resides,\nsuch as us-central1-a.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "localSsdGb": {
          "format": "int32",
          "description": "[Output Only] Local SSD available to the node type, defined in GB.",
          "type": "integer"
        },
        "creationTimestamp": {
          "description": "[Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "deprecated": {
          "description": "[Output Only] The deprecation status associated with this node type.",
          "$ref": "DeprecationStatus"
        },
        "memoryMb": {
          "type": "integer",
          "format": "int32",
          "description": "[Output Only] The amount of physical memory available to the node type,\ndefined in MB."
        },
        "kind": {
          "description": "Output only. [Output Only] The type of the resource. Alwayscompute#nodeType for node types.",
          "default": "compute#nodeType",
          "readOnly": true,
          "type": "string"
        },
        "maxVms": {
          "format": "int32",
          "readOnly": true,
          "description": "Output only. [Output Only] Maximum number of VMs that can be created for this node type.",
          "type": "integer"
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "[Output Only] Name of the resource."
        },
        "guestCpus": {
          "type": "integer",
          "description": "[Output Only] The number of virtual CPUs that are available to the node\ntype.",
          "format": "int32"
        },
        "description": {
          "description": "[Output Only] An optional textual description of the resource.",
          "type": "string"
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        }
      },
      "id": "NodeType",
      "description": "Represent a sole-tenant Node Type resource.\n\nEach node within a node group must have a node type. A node type specifies\nthe total amount of cores and memory for that node. Currently, the only\navailable node type is n1-node-96-624 node type that has 96\nvCPUs and 624 GB of memory, available in multiple zones. For more information\nreadNode types.",
      "type": "object"
    },
    "MachineImageParams": {
      "type": "object",
      "description": "Machine Image parameters",
      "id": "MachineImageParams",
      "properties": {
        "resourceManagerTags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Input only. Resource manager tags to be bound to the machine image. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT &\nPATCH) when empty."
        }
      }
    },
    "InterconnectGroupPhysicalStructureMetros": {
      "description": "[Output Only] The metros Interconnects in this group are in.",
      "properties": {
        "metro": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The name of the metro, as a three-letter lowercase string\nlike \"iad\". This is the first component of the location of\nInterconnects underneath this."
        },
        "facilities": {
          "items": {
            "$ref": "InterconnectGroupPhysicalStructureMetrosFacilities"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "InterconnectGroupPhysicalStructureMetros"
    },
    "WorkloadIdentityConfig": {
      "properties": {
        "identity": {
          "type": "string"
        },
        "identityCertificateEnabled": {
          "type": "boolean"
        }
      },
      "id": "WorkloadIdentityConfig",
      "type": "object"
    },
    "RolloutPlanWaveSelectorLocationSelector": {
      "properties": {
        "includedLocations": {
          "description": "Optional. Example: \"us-central1-a\"",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Roll out to resources by location.",
      "id": "RolloutPlanWaveSelectorLocationSelector",
      "type": "object"
    },
    "BulkSetLabelsRequest": {
      "properties": {
        "labels": {
          "description": "The labels to set for this resource.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "labelFingerprint": {
          "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by Compute\nEngine and changes after every request to modify or update labels. You may\noptionally provide an up-to-date fingerprint hash in order to update or\nchange labels. Make a get() request to the resource to get the\nlatest fingerprint.",
          "type": "string",
          "format": "byte"
        }
      },
      "type": "object",
      "id": "BulkSetLabelsRequest"
    },
    "HttpFaultAbort": {
      "description": "Specification for how requests are aborted as part of fault injection.",
      "id": "HttpFaultAbort",
      "properties": {
        "percentage": {
          "description": "The percentage of traffic for connections, operations, or requests\nthat is aborted as part of fault injection.\n\nThe value must be from 0.0 to 100.0 inclusive.",
          "type": "number",
          "format": "double"
        },
        "httpStatus": {
          "format": "uint32",
          "description": "The HTTP status code used to abort the request.\n\nThe value must be from 200 to 599 inclusive.\n\nFor gRPC protocol, the gRPC status code is mapped to HTTP status code\naccording to this \nmapping table. HTTP status 200 is mapped to gRPC status\nUNKNOWN. Injecting an OK status is currently not supported by\nTraffic Director.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "CapacityAdviceRequestInstancePropertiesScheduling": {
      "type": "object",
      "id": "CapacityAdviceRequestInstancePropertiesScheduling",
      "properties": {
        "provisioningModel": {
          "enumDescriptions": [
            "Instance is provisioned using the Flex Start provisioning model and\nhas a limited runtime.",
            "Bound to the lifecycle of the reservation in which it is provisioned.",
            "Heavily discounted, no guaranteed runtime.",
            "Standard provisioning with user controlled runtime, no discounts."
          ],
          "description": "Specifies the provisioning model.",
          "enum": [
            "FLEX_START",
            "RESERVATION_BOUND",
            "SPOT",
            "STANDARD"
          ],
          "type": "string"
        }
      },
      "description": "Defines the instance scheduling options."
    },
    "HostPhysicalTopology": {
      "id": "HostPhysicalTopology",
      "properties": {
        "block": {
          "type": "string",
          "description": "The unique identifier of the capacity block within the cluster."
        },
        "host": {
          "type": "string",
          "description": "The unique identifier of the capacity host within the capacity sub-block."
        },
        "subBlock": {
          "type": "string",
          "description": "The unique identifier of the capacity sub-block within the capacity\nblock."
        },
        "cluster": {
          "type": "string",
          "description": "The cluster name of the reservation sub-block."
        }
      },
      "type": "object"
    },
    "ReservationParams": {
      "id": "ReservationParams",
      "type": "object",
      "properties": {
        "resourceManagerTags": {
          "description": "Input only. Resource manager tags to be bound to the reservation. Tag keys and\nvalues have the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT &\nPATCH) when empty.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "description": "Additional reservation params."
    },
    "NetworkList": {
      "id": "NetworkList",
      "description": "Contains a list of networks.",
      "type": "object",
      "properties": {
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Always compute#networkList for\nlists of networks.",
          "type": "string",
          "readOnly": true,
          "default": "compute#networkList"
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "items": {
          "items": {
            "$ref": "Network"
          },
          "description": "A list of Network resources.",
          "type": "array"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        }
      }
    },
    "NodeGroupNode": {
      "type": "object",
      "properties": {
        "consumedResources": {
          "description": "Output only. Node resources that are reserved by all instances.",
          "readOnly": true,
          "$ref": "InstanceConsumptionInfo"
        },
        "disks": {
          "items": {
            "$ref": "LocalDisk"
          },
          "type": "array",
          "description": "Local disk configurations."
        },
        "serverId": {
          "description": "Server ID associated with this node.",
          "type": "string"
        },
        "serverBinding": {
          "$ref": "ServerBinding",
          "description": "Binding properties for the physical server."
        },
        "instanceConsumptionData": {
          "description": "Output only. Instance data that shows consumed resources on the node.",
          "type": "array",
          "items": {
            "$ref": "InstanceConsumptionData"
          },
          "readOnly": true
        },
        "cpuOvercommitType": {
          "enum": [
            "CPU_OVERCOMMIT_TYPE_UNSPECIFIED",
            "ENABLED",
            "NONE"
          ],
          "description": "CPU overcommit.",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ]
        },
        "totalResources": {
          "$ref": "InstanceConsumptionInfo",
          "readOnly": true,
          "description": "Output only. Total amount of available resources on the node."
        },
        "accelerators": {
          "type": "array",
          "items": {
            "$ref": "AcceleratorConfig"
          },
          "description": "Accelerators for this node."
        },
        "name": {
          "type": "string",
          "description": "The name of the node."
        },
        "instances": {
          "description": "Instances scheduled on this node.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string",
          "enum": [
            "CREATING",
            "DELETING",
            "INVALID",
            "READY",
            "REPAIRING"
          ]
        },
        "nodeType": {
          "description": "The type of this node.",
          "type": "string"
        },
        "upcomingMaintenance": {
          "readOnly": true,
          "description": "Output only. [Output Only] The information about an upcoming maintenance event.",
          "$ref": "UpcomingMaintenance"
        },
        "satisfiesPzs": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. [Output Only] Reserved for future use."
        }
      },
      "id": "NodeGroupNode"
    },
    "TargetHttpProxiesScopedList": {
      "id": "TargetHttpProxiesScopedList",
      "properties": {
        "warning": {
          "type": "object",
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty.",
          "properties": {
            "data": {
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "targetHttpProxies": {
          "description": "A list of TargetHttpProxies contained in this scope.",
          "type": "array",
          "items": {
            "$ref": "TargetHttpProxy"
          }
        }
      },
      "type": "object"
    },
    "SecurityPolicyRuleRateLimitOptions": {
      "properties": {
        "enforceOnKeyConfigs": {
          "type": "array",
          "items": {
            "$ref": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig"
          },
          "description": "If specified, any combination of values of\nenforce_on_key_type/enforce_on_key_name is treated as the key on which\nratelimit threshold/action is enforced. You can specify up to 3\nenforce_on_key_configs. If enforce_on_key_configs is specified,\nenforce_on_key must not be specified."
        },
        "enforceOnKeyName": {
          "description": "Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key\nvalue.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key\nvalue.",
          "type": "string"
        },
        "enforceOnKey": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "description": "Determines the key to enforce the rate_limit_threshold on. Possible\nvalues are:\n   \n   - ALL: A single rate limit threshold is applied to all\n   the requests matching this rule. This is the default value if\n   \"enforceOnKey\" is not configured.\n   - IP: The source IP address of\n   the request is the key. Each IP has this limit enforced\n   separately.\n   - HTTP_HEADER: The value of the HTTP\n   header whose name is configured under \"enforceOnKeyName\". The key\n   value is truncated to the first 128 bytes of the header value. If no\n   such header is present in the request, the key type defaults toALL.\n   - XFF_IP: The first IP address (i.e. the\n   originating client IP address) specified in the list of IPs under\n   X-Forwarded-For HTTP header. If no such header is present or the value\n   is not a valid IP, the key defaults to the source IP address of\n   the request i.e. key type IP.\n   - HTTP_COOKIE: The value of the HTTP\n   cookie whose name is configured under \"enforceOnKeyName\". The key\n   value is truncated to the first 128 bytes of the cookie value. If no\n   such cookie is present in the request, the key type defaults toALL.\n   - HTTP_PATH: The URL path of the HTTP request. The key\n   value is truncated to the first 128 bytes. \n   - SNI: Server name indication in the TLS session of the\n   HTTPS request. The key value is truncated to the first 128 bytes. The\n   key type defaults to ALL on a HTTP session. \n   - REGION_CODE: The country/region from which the request\n   originates. \n   - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the\n   client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\n   key type defaults to ALL. \n   - USER_IP: The IP address of the originating client,\n   which is resolved based on \"userIpRequestHeaders\" configured with the\n   security policy. If there is no \"userIpRequestHeaders\" configuration or\n   an IP address cannot be resolved from it, the key type defaults toIP. \n   - ASN: The autonomous system number of the originating\n   client. If not available, the key type defaults toALL.\n   - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the\n   client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\n   key type defaults to ALL. \n\n\nFor \"fairshare\" action, this value is limited to ALL i.e. a single rate\nlimit threshold is enforced for all the requests matching the rule.",
          "enum": [
            "ALL",
            "ASN",
            "HTTP_COOKIE",
            "HTTP_HEADER",
            "HTTP_PATH",
            "IP",
            "REGION_CODE",
            "SNI",
            "TLS_JA3_FINGERPRINT",
            "TLS_JA4_FINGERPRINT",
            "USER_IP",
            "XFF_IP"
          ]
        },
        "banThreshold": {
          "description": "Can only be specified if the action for the rule is\n\"rate_based_ban\". If specified, the key will be banned for the\nconfigured 'ban_duration_sec' when the number of requests that exceed\nthe 'rate_limit_threshold' also exceed this 'ban_threshold'.",
          "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold"
        },
        "exceedAction": {
          "description": "Action to take for requests that are above the configured rate limit\nthreshold, to either deny with a specified HTTP response code, or\nredirect to a different endpoint.\nValid options are `deny(STATUS)`, where valid values for\n`STATUS` are 403, 404, 429, and 502, and\n`redirect`, where the redirect parameters come from\n`exceedRedirectOptions` below.\nThe `redirect` action is only supported in Global Security Policies of\ntype CLOUD_ARMOR.",
          "type": "string"
        },
        "banDurationSec": {
          "format": "int32",
          "description": "Can only be specified if the action for the rule is\n\"rate_based_ban\". If specified, determines the time (in seconds)\nthe traffic will continue to be banned by the rate limit after the\nrate falls below the threshold.",
          "type": "integer"
        },
        "rateLimitThreshold": {
          "description": "Threshold at which to begin ratelimiting.",
          "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold"
        },
        "conformAction": {
          "description": "Action to take for requests that are under the configured rate limit\nthreshold. Valid option is \"allow\" only.",
          "type": "string"
        },
        "exceedRedirectOptions": {
          "description": "Parameters defining the redirect action that is used as the exceed\naction. Cannot be specified if the exceed action is not redirect.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR.",
          "$ref": "SecurityPolicyRuleRedirectOptions"
        }
      },
      "id": "SecurityPolicyRuleRateLimitOptions",
      "type": "object"
    },
    "ResourceMetadata": {
      "id": "ResourceMetadata",
      "properties": {
        "apiVersion": {
          "type": "string",
          "description": "The version of the API interface that this resource was retrieved through.\nFor example, `\"2025-01-01\"` or `\"2025-01-01-preview\"`."
        },
        "resourceType": {
          "description": "The canonical resource type name in the format of a resource type\nas defined by [AIP-123](https://google.aip.dev/123).\nFor example, `\"compute.googleapis.com/Instance\"`.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Standardized resource metadata common to all compute resources."
    },
    "Address": {
      "properties": {
        "labels": {
          "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "name": {
          "annotations": {
            "required": [
              "compute.addresses.insert"
            ]
          },
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character\nmust be a lowercase letter, and all following characters (except for the\nlast character) must be a dash, lowercase letter, or digit. The last\ncharacter must be a lowercase letter or digit.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "users": {
          "items": {
            "type": "string"
          },
          "description": "[Output Only] The URLs of the resources that are using this address.",
          "type": "array"
        },
        "labelFingerprint": {
          "type": "string",
          "description": "A fingerprint for the labels being applied to this Address, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an Address.",
          "format": "byte"
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "prefixLength": {
          "description": "The prefix length if the resource represents an IP range.",
          "type": "integer",
          "format": "int32"
        },
        "ipv6EndpointType": {
          "type": "string",
          "enum": [
            "NETLB",
            "VM"
          ],
          "enumDescriptions": [
            "Reserved IPv6 address can be used on network load balancer.",
            "Reserved IPv6 address can be used on VM."
          ],
          "description": "The endpoint type of this address, which should be VM\nor NETLB. This is used for deciding which type of endpoint\nthis address can be used after the external IPv6 address reservation."
        },
        "ipCollection": {
          "type": "string",
          "description": "Reference to the source of IP addresses.\n\nIt supports the following cases:\n   \n   - \n     Case 1: PublicDelegatedPrefix (PDP) for BYOIP external\n     addresses. If an IPv4 PDP is used, the PDP must support enhanced IPv4\n     allocations. If an IPv6 PDP is used, the PDP must be in\n     EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.\n   - \n     Case 2: Internal Range for global internal addresses.\n\n\n\nUse one of the following formats to specify the resource:\n\nFor a Public Delegated Prefix:\n   \n   - \n   Full resource URL:https://www.googleapis.com/compute/v1/projects/projectId/regions/region/publicDelegatedPrefixes/pdp\n   - Partial URL:\n      - projects/projectId/regions/region/publicDelegatedPrefixes/pdp-name\n      - regions/region/publicDelegatedPrefixes/pdp-name\n   \n\n\nFor an Internal Range:\n   \n   - Full URL:https://networkconnectivity.googleapis.com/v1/projects/project/locations/global/internalRanges/internal-range\n   - Partial URL:projects/project/locations/global/internalRanges/internal-range"
        },
        "ipVersion": {
          "enum": [
            "IPV4",
            "IPV6",
            "UNSPECIFIED_VERSION"
          ],
          "description": "The IP version that will be used by this address. Valid options areIPV4 or IPV6.",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "subnetwork": {
          "description": "The URL of the subnetwork in which to reserve the address. If an IP address\nis specified, it must be within the subnetwork's IP range. This field can\nonly be used with INTERNAL type with aGCE_ENDPOINT or DNS_RESOLVER purpose.",
          "type": "string"
        },
        "networkTier": {
          "type": "string",
          "enumDescriptions": [
            "Public internet quality with fixed bandwidth.",
            "High quality, Google-grade network tier, support for all networking\nproducts.",
            "Public internet quality, only limited support for other networking\nproducts.",
            "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured."
          ],
          "description": "This signifies the networking tier used for configuring this address and\ncan only take the following values: PREMIUM orSTANDARD. Internal IP addresses are always Premium Tier;\nglobal external IP addresses are always Premium Tier; regional external IP\naddresses can be either Standard or Premium Tier.\n\nIf this field is not specified, it is assumed to be PREMIUM.",
          "enum": [
            "FIXED_STANDARD",
            "PREMIUM",
            "STANDARD",
            "STANDARD_OVERRIDES_FIXED_STANDARD"
          ]
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "status": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "IN_USE",
            "RESERVED",
            "RESERVING"
          ],
          "enumDescriptions": [
            "Address is being used by another resource and is not available.",
            "Address is reserved and available to use.",
            "Address is being reserved."
          ],
          "description": "Output only. [Output Only] The status of the address, which can be one ofRESERVING, RESERVED, or IN_USE.\nAn address that is RESERVING is currently in the process of\nbeing reserved. A RESERVED address is currently reserved and\navailable to use. An IN_USE address is currently being used\nby another resource and is not available."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#address",
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Always compute#address for\naddresses."
        },
        "address": {
          "description": "The static IP address represented by this resource.",
          "type": "string"
        },
        "region": {
          "description": "Output only. [Output Only] The URL of the region where a regional address resides.\nFor regional addresses, you must specify the region as a path parameter in\nthe HTTP request URL. *This field is not applicable to global\naddresses.*",
          "type": "string",
          "readOnly": true
        },
        "addressType": {
          "enumDescriptions": [
            "A publicly visible external IP address.",
            "A private network IP address, for use with an Instance or Internal Load\nBalancer forwarding rule.",
            ""
          ],
          "enum": [
            "EXTERNAL",
            "INTERNAL",
            "UNSPECIFIED_TYPE"
          ],
          "type": "string",
          "description": "The type of address to reserve, either INTERNAL orEXTERNAL. If unspecified, defaults to EXTERNAL."
        },
        "description": {
          "description": "An optional description of this resource. Provide this field when you\ncreate the resource.",
          "type": "string"
        },
        "purpose": {
          "enumDescriptions": [
            "DNS resolver address in the subnetwork.",
            "VM internal/alias IP, Internal LB service IP, etc.",
            "A regional internal IP address range reserved for the VLAN attachment\nthat is used in HA VPN over Cloud Interconnect. This regional\ninternal IP address range must not overlap with any IP address range\nof subnet/route in the VPC network and its peering networks. After the\nVLAN attachment is created with the reserved IP address range, when\ncreating a new VPN gateway, its interface IP address is allocated\nfrom the associated VLAN attachment's IP address range.",
            "External IP automatically reserved for Cloud NAT.",
            "A private network IP address that can be used to configure Private\nService Connect. This purpose can be specified only forGLOBAL addresses of Type INTERNAL",
            "A regional internal IP address range reserved for Serverless.",
            "A private network IP address that can be shared by multiple Internal\nLoad Balancer forwarding rules.",
            "IP range for peer networks."
          ],
          "type": "string",
          "description": "The purpose of this resource, which can be one of the following values:\n   \n   \n     - GCE_ENDPOINT for addresses that are used by VM\n     instances, alias IP ranges, load balancers, and similar resources.\n     - DNS_RESOLVER for a DNS resolver address in a subnetwork\n       for a Cloud DNS  inbound\n       forwarder IP addresses (regional internal IP address in a subnet of\n       a VPC network)\n     - VPC_PEERING for global internal IP addresses used for\n      \n          private services access allocated ranges.\n     - NAT_AUTO for the regional external IP addresses used by\n          Cloud NAT when allocating addresses using\n          \n          automatic NAT IP address allocation.\n     - IPSEC_INTERCONNECT for addresses created from a private\n     IP range that are reserved for a VLAN attachment in an\n     *HA VPN over Cloud Interconnect* configuration. These addresses\n     are regional resources.\n     - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned\n     to multiple internal forwarding rules.\n     - `PRIVATE_SERVICE_CONNECT` for a private network address that is\n     used to configure Private Service Connect. Only global internal addresses\n     can use this purpose.\n     - `PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0` for addresses\n     that can only be assigned to global external Passthrough Network Load\n     Balancer forwarding rules, as an Availability Group 0 address.\n     - `PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1` for addresses that\n     can only be assigned to global external Passthrough Network Load Balancer\n     forwarding rules, as an Availability Group 1 address.",
          "enum": [
            "DNS_RESOLVER",
            "GCE_ENDPOINT",
            "IPSEC_INTERCONNECT",
            "NAT_AUTO",
            "PRIVATE_SERVICE_CONNECT",
            "SERVERLESS",
            "SHARED_LOADBALANCER_VIP",
            "VPC_PEERING"
          ]
        },
        "network": {
          "type": "string",
          "description": "The URL of the network in which to reserve the address. This field can\nonly be used with INTERNAL type with theVPC_PEERING purpose."
        }
      },
      "description": "Represents an IP Address resource.\n\nGoogle Compute Engine has two IP Address resources:\n\n* [Global (external and\ninternal)](https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses)\n* [Regional (external and\ninternal)](https://cloud.google.com/compute/docs/reference/rest/v1/addresses)\n\nFor more information, see\nReserving a static external IP address.",
      "id": "Address",
      "type": "object"
    },
    "RegionList": {
      "description": "Contains a list of region resources.",
      "id": "RegionList",
      "properties": {
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "type": "string",
          "default": "compute#regionList",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Always compute#regionList for\nlists of regions."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "items": {
          "description": "A list of Region resources.",
          "items": {
            "$ref": "Region"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "UrlMapTest": {
      "type": "object",
      "id": "UrlMapTest",
      "description": "Message for the expected URL mappings.",
      "properties": {
        "path": {
          "description": "Path portion of the URL.",
          "type": "string"
        },
        "headers": {
          "items": {
            "$ref": "UrlMapTestHeader"
          },
          "type": "array",
          "description": "HTTP headers for this request. If headers contains\na host header, then host must also match the header value."
        },
        "service": {
          "description": "Expected BackendService or BackendBucket resource\nthe given URL should be mapped to. \n\nThe service field cannot\nbe set if expectedRedirectResponseCode is set.",
          "type": "string"
        },
        "expectedOutputUrl": {
          "description": "The expected output URL evaluated by the load balancer\ncontaining the scheme, host, path and query parameters.\n\nFor rules that forward requests to backends, the test passes only whenexpectedOutputUrl matches the request forwarded by\nthe load balancer to backends. For rules with urlRewrite,\nthe test verifies that the forwarded request matcheshostRewrite and pathPrefixRewrite in theurlRewrite action. When service is specified,expectedOutputUrl`s scheme is ignored.\n\nFor rules with urlRedirect, the test passes only ifexpectedOutputUrl matches the URL in the load balancer's\nredirect response. If urlRedirect specifieshttps_redirect, the test passes only if the scheme inexpectedOutputUrl is also set to HTTPS.\nIf urlRedirect specifies strip_query, the test\npasses only if expectedOutputUrl does not contain any query\nparameters. \n\nexpectedOutputUrl is optional whenservice is specified.",
          "type": "string"
        },
        "expectedRedirectResponseCode": {
          "type": "integer",
          "format": "int32",
          "description": "For rules with urlRedirect, the test passes only ifexpectedRedirectResponseCode matches the HTTP status code in\nload balancer's redirect response.\n\nexpectedRedirectResponseCode cannot be set whenservice is set."
        },
        "description": {
          "description": "Description of this test case.",
          "type": "string"
        },
        "host": {
          "description": "Host portion of the URL. If headers contains a host header,\nthen host must also match the header value.",
          "type": "string"
        }
      }
    },
    "CapacityAdviceRequest": {
      "properties": {
        "instanceFlexibilityPolicy": {
          "description": "Policy for instance selectors.",
          "$ref": "CapacityAdviceRequestInstanceFlexibilityPolicy"
        },
        "distributionPolicy": {
          "description": "Policy specifying the distribution of instances across\nzones within the requested region.",
          "$ref": "CapacityAdviceRequestDistributionPolicy"
        },
        "size": {
          "format": "int32",
          "type": "integer",
          "description": "The number of VM instances to request."
        },
        "instanceProperties": {
          "description": "Instance properties for this request.",
          "$ref": "CapacityAdviceRequestInstanceProperties"
        }
      },
      "description": "A request to provide Assistant Scores. These scores determine VM\nobtainability and preemption likelihood.",
      "type": "object",
      "id": "CapacityAdviceRequest"
    },
    "CapacityAdviceResponseRecommendationScores": {
      "type": "object",
      "id": "CapacityAdviceResponseRecommendationScores",
      "description": "Groups information about a shard of capacity.",
      "properties": {
        "estimatedUptime": {
          "description": "The estimated run time of the majority of Spot VMs in the request\nbefore preemption. The estimate is best-effort only. It is based on\nhistorical data and current conditions.",
          "format": "google-duration",
          "type": "string"
        },
        "obtainability": {
          "description": "The obtainability score indicates the likelihood of successfully\nobtaining (provisioning) the requested number of VMs.\nThe score range is 0.0 through 1.0. Higher is better.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "MachineImage": {
      "properties": {
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.machineImages.insert"
            ]
          },
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.",
          "type": "string"
        },
        "guestFlush": {
          "type": "boolean",
          "description": "[Input Only] Whether to attempt an application consistent machine image by\ninforming the OS to prepare for the snapshot process."
        },
        "status": {
          "description": "Output only. [Output Only] The status of the machine image. One of the following values:INVALID, CREATING, READY,DELETING, and UPLOADING.",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string",
          "enum": [
            "CREATING",
            "DELETING",
            "INVALID",
            "READY",
            "UPLOADING"
          ],
          "readOnly": true
        },
        "sourceInstanceProperties": {
          "$ref": "SourceInstanceProperties",
          "readOnly": true,
          "description": "Output only. [Output Only] DEPRECATED: Please use instance_properties\ninstead for source instance related properties. New properties will not be\nadded to this field."
        },
        "storageLocations": {
          "description": "The regional or multi-regional Cloud Storage bucket location where themachine image is\nstored.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "sourceDiskEncryptionKeys": {
          "type": "array",
          "description": "[Input Only] Thecustomer-supplied\nencryption key of the disks attached to the source instance. Required\nif the source disk is protected by a customer-supplied encryption key.",
          "items": {
            "$ref": "SourceDiskEncryptionKey"
          }
        },
        "instanceProperties": {
          "description": "[Output Only] Properties of source instance",
          "$ref": "InstanceProperties"
        },
        "totalStorageBytes": {
          "type": "string",
          "format": "int64",
          "description": "Output only. [Output Only] Total size of the storage used by the machine image.",
          "readOnly": true
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to apply to this machine image. These can be later modified by\nthe setLabels method.",
          "type": "object"
        },
        "labelFingerprint": {
          "type": "string",
          "format": "byte",
          "description": "A fingerprint for the labels being applied to this machine image, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels.\n\nTo see the latest fingerprint, make get() request to the\nmachine image."
        },
        "satisfiesPzi": {
          "description": "Output only. Reserved for future use.",
          "readOnly": true,
          "type": "boolean"
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] The URL for this machine image. The server defines this URL.",
          "readOnly": true
        },
        "params": {
          "$ref": "MachineImageParams",
          "description": "Input only. [Input Only] Additional parameters that are passed in the request, but are\nnot persisted in the resource."
        },
        "kind": {
          "default": "compute#machineImage",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The resource type, which is alwayscompute#machineImage for machine image."
        },
        "sourceInstance": {
          "description": "The source instance used to create the machine image. You can provide this\nas a partial or full URL to the resource. For example, the following are\nvalid values: \n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n   - projects/project/zones/zone/instances/instance",
          "type": "string"
        },
        "machineImageEncryptionKey": {
          "$ref": "CustomerEncryptionKey",
          "description": "Encrypts the machine image using acustomer-supplied\nencryption key.\n\nAfter you encrypt a machine image using a customer-supplied key, you must\nprovide the same key if you use the machine image later. For example, you\nmust provide the encryption key when you create an instance from the\nencrypted machine image in a future request.\n\nCustomer-supplied encryption keys do not protect access to metadata of the\nmachine image.\n\nIf you do not provide an encryption key when creating the machine image,\nthen the machine image will be encrypted using an automatically generated\nkey and you do not need to provide a key to use the machine image later."
        },
        "satisfiesPzs": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. [Output Only] Reserved for future use."
        },
        "savedDisks": {
          "description": "Output only. An array of Machine Image specific properties for disks attached to the\nsource instance",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "SavedDisk"
          }
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] The creation timestamp for this machine image inRFC3339\ntext format.",
          "readOnly": true
        },
        "id": {
          "format": "uint64",
          "description": "Output only. [Output Only] A unique identifier for this machine image. The server\ndefines this identifier.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "MachineImage",
      "type": "object",
      "description": "Represents a machine image resource.\n\nA machine image is a Compute Engine resource that stores all the\nconfiguration, metadata, permissions, and data from one or more disks\nrequired to create a Virtual machine (VM) instance. For more information, seeMachine images."
    },
    "CrossSiteNetworkList": {
      "id": "CrossSiteNetworkList",
      "type": "object",
      "properties": {
        "etag": {
          "type": "string"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for this resource."
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#crossSiteNetwork for cross-site networks.",
          "type": "string",
          "default": "compute#crossSiteNetwork"
        },
        "unreachables": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder"
        },
        "items": {
          "description": "A list of CrossSiteNetwork resources.",
          "items": {
            "$ref": "CrossSiteNetwork"
          },
          "type": "array"
        }
      },
      "description": "Response to the list request that contains a list of cross-site networks."
    },
    "UrlMapsValidateResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "UrlMapValidationResult"
        }
      },
      "id": "UrlMapsValidateResponse"
    },
    "NodeGroupsSimulateMaintenanceEventRequest": {
      "id": "NodeGroupsSimulateMaintenanceEventRequest",
      "type": "object",
      "properties": {
        "nodes": {
          "items": {
            "type": "string"
          },
          "description": "Names of the nodes to go under maintenance simulation.",
          "type": "array"
        }
      }
    },
    "FileContentBuffer": {
      "properties": {
        "content": {
          "description": "The raw content in the secure keys file.",
          "type": "string",
          "format": "byte"
        },
        "fileType": {
          "type": "string",
          "enum": [
            "BIN",
            "UNDEFINED",
            "X509"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "description": "The file type of source file."
        }
      },
      "type": "object",
      "id": "FileContentBuffer"
    },
    "HttpQueryParameterMatch": {
      "description": "HttpRouteRuleMatch criteria for a request's query parameter.",
      "properties": {
        "presentMatch": {
          "description": "Specifies that the queryParameterMatch matches if the\nrequest contains the query parameter, irrespective of whether the\nparameter has a value or not.\n\nOnly one of presentMatch, exactMatch, orregexMatch must be set.",
          "type": "boolean"
        },
        "exactMatch": {
          "description": "The queryParameterMatch matches if the value of the\nparameter exactly matches the contents of exactMatch.\n\nOnly one of presentMatch, exactMatch, orregexMatch must be set.",
          "type": "string"
        },
        "regexMatch": {
          "type": "string",
          "description": "The queryParameterMatch matches if the value of the\nparameter matches the regular expression specified byregexMatch. For\nmore information about regular expression syntax, see Syntax.\n\nOnly one of presentMatch, exactMatch, orregexMatch must be set.\n\nRegular expressions can only be used when the loadBalancingScheme is\nset to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED\n(regional scope) or INTERNAL_MANAGED."
        },
        "name": {
          "description": "The name of the query parameter to match. The query parameter must exist in\nthe request, in the absence of which the request match fails.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "HttpQueryParameterMatch"
    },
    "ResourcePolicyInstanceSchedulePolicySchedule": {
      "description": "Schedule for an instance operation.",
      "properties": {
        "schedule": {
          "description": "Specifies the frequency for the operation, using the unix-cron format.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ResourcePolicyInstanceSchedulePolicySchedule"
    },
    "HealthAggregationPolicyAggregatedList": {
      "description": "Contains a list of HealthAggregationPoliciesScopedList.",
      "id": "HealthAggregationPolicyAggregatedList",
      "properties": {
        "unreachables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true
        },
        "kind": {
          "description": "Output only. Type of resource.",
          "type": "string",
          "readOnly": true,
          "default": "compute#healthAggregationPolicyAggregatedList"
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "description": "A list of HealthAggregationPoliciesScopedList resources.",
          "type": "object",
          "additionalProperties": {
            "description": "Name of the scope containing this set of HealthAggregationPolicies.",
            "$ref": "HealthAggregationPoliciesScopedList"
          }
        }
      },
      "type": "object"
    },
    "AcceleratorTypeList": {
      "type": "object",
      "properties": {
        "kind": {
          "default": "compute#acceleratorTypeList",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#acceleratorTypeList for lists of accelerator types.",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "items": {
          "description": "A list of AcceleratorType resources.",
          "type": "array",
          "items": {
            "$ref": "AcceleratorType"
          }
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Contains a list of accelerator types.",
      "id": "AcceleratorTypeList"
    },
    "StoragePoolTypeAggregatedList": {
      "id": "StoragePoolTypeAggregatedList",
      "properties": {
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolTypeAggregatedList.",
          "default": "compute#storagePoolTypeAggregatedList"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "warning": {
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "type": "object",
          "description": "A list of StoragePoolTypesScopedList resources.",
          "additionalProperties": {
            "description": "[Output Only] Name of the scope containing this set of storage pool types.",
            "$ref": "StoragePoolTypesScopedList"
          }
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        }
      },
      "type": "object"
    },
    "VmExtensionPolicyList": {
      "type": "object",
      "properties": {
        "unreachables": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Type of resource.",
          "default": "compute#vmExtensionPolicyList"
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "description": "Output only. [Output Only] A list of VM extension policy resources.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "VmExtensionPolicy"
          }
        },
        "nextPageToken": {
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string",
          "readOnly": true
        },
        "warning": {
          "type": "object",
          "readOnly": true,
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "Output only. [Output Only] Informational warning message."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "etag": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Fingerprint of this resource. A hash of the contents stored\nin this object. This field is used in optimistic locking. This field will\nbe ignored when inserting a VmExtensionPolicy. An up-to-date\nfingerprint must be provided in order to update the VmExtensionPolicy.\n\nTo see the latest value of the fingerprint, make a get() request to\nretrieve a VmExtensionPolicy."
        }
      },
      "id": "VmExtensionPolicyList"
    },
    "TargetVpnGatewayAggregatedList": {
      "type": "object",
      "id": "TargetVpnGatewayAggregatedList",
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "items": {
          "additionalProperties": {
            "$ref": "TargetVpnGatewaysScopedList",
            "description": "[Output Only] Name of the scope containing this set of target VPN gateways."
          },
          "type": "object",
          "description": "A list of TargetVpnGateway resources."
        },
        "unreachables": {
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources.",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetVpnGateway for target VPN gateways.",
          "type": "string",
          "default": "compute#targetVpnGatewayAggregatedList"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          },
          "type": "object"
        }
      }
    },
    "ShareSettingsProjectConfig": {
      "id": "ShareSettingsProjectConfig",
      "properties": {
        "projectId": {
          "description": "The project ID, should be same as the key of this project config in the\nparent map.",
          "type": "string"
        }
      },
      "description": "Config for each project in the share settings.",
      "type": "object"
    },
    "BackendServiceLogConfigLoggingHttpHeader": {
      "id": "BackendServiceLogConfigLoggingHttpHeader",
      "properties": {
        "headerName": {
          "type": "string",
          "description": "The name of the header to be logged."
        }
      },
      "type": "object",
      "description": "Determines which HTTP headers will be logged to Stackdriver."
    },
    "ManagedInstanceScheduling": {
      "properties": {
        "terminationTimestamp": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The timestamp at which the managed instance will be terminated. This is\nin RFC3339 text\nformat."
        },
        "gracefulShutdownTimestamp": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The timestamp at which the underlying instance will be\ntriggered for graceful shutdown if it is configured. This is in RFC3339 text format."
        }
      },
      "type": "object",
      "id": "ManagedInstanceScheduling"
    },
    "InstanceGroupManagerStatusAcceleratorTopology": {
      "type": "object",
      "id": "InstanceGroupManagerStatusAcceleratorTopology",
      "properties": {
        "stateDetails": {
          "$ref": "InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails",
          "readOnly": true,
          "description": "Output only. The result of the latest accelerator topology state\ncheck."
        },
        "state": {
          "enumDescriptions": [
            "The accelerator topology is being activated.",
            "The accelerator topology is active.",
            "The accelerator topology is being deactivated.",
            "The accelerator topology failed.",
            "The configuration is incomplete and the accelerator topology cannot\nbe activated due to insufficient number of running VMs.",
            "The accelerator topology is being reactivated."
          ],
          "type": "string",
          "description": "Output only. The state of the accelerator topology.",
          "enum": [
            "ACTIVATING",
            "ACTIVE",
            "DEACTIVATING",
            "FAILED",
            "INCOMPLETE",
            "REACTIVATING"
          ],
          "readOnly": true
        },
        "acceleratorTopology": {
          "description": "Output only. Topology in the format of: \"16x16\", \"4x4x4\", etc.\nThe value is the same as configured in the WorkloadPolicy.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "BfdStatus": {
      "id": "BfdStatus",
      "description": "Next free: 15",
      "properties": {
        "configUpdateTimestampMicros": {
          "description": "Unix timestamp of the most recent config update.",
          "type": "string",
          "format": "int64"
        },
        "uptimeMs": {
          "type": "string",
          "format": "int64",
          "description": "Session uptime in milliseconds. Value will be 0 if session is not up."
        },
        "rxPacket": {
          "description": "The most recent Rx control packet for this BFD session.",
          "$ref": "BfdPacket"
        },
        "controlPacketCounts": {
          "description": "Control packet counts for the current BFD session.",
          "$ref": "BfdStatusPacketCounts"
        },
        "negotiatedLocalControlTxIntervalMs": {
          "type": "integer",
          "description": "Negotiated transmit interval for control packets.",
          "format": "uint32"
        },
        "bfdSessionInitializationMode": {
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string",
          "enum": [
            "ACTIVE",
            "DISABLED",
            "PASSIVE"
          ],
          "description": "The BFD session initialization mode for this BGP peer.\nIf set to ACTIVE, the Cloud Router will initiate the BFD session for\nthis BGP peer. If set to PASSIVE, the Cloud Router will wait for the\npeer router to initiate the BFD session for this BGP peer. If set to\nDISABLED, BFD is disabled for this BGP peer."
        },
        "txPacket": {
          "$ref": "BfdPacket",
          "description": "The most recent Tx control packet for this BFD session."
        },
        "controlPacketIntervals": {
          "description": "Inter-packet time interval statistics for control packets.",
          "type": "array",
          "items": {
            "$ref": "PacketIntervals"
          }
        },
        "localDiagnostic": {
          "type": "string",
          "description": "The diagnostic code specifies the local system's reason for the last change\nin session state. This allows remote systems to determine the reason that\nthe previous session failed, for example. These diagnostic codes are\nspecified in section 4.1 ofRFC5880",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "ADMINISTRATIVELY_DOWN",
            "CONCATENATED_PATH_DOWN",
            "CONTROL_DETECTION_TIME_EXPIRED",
            "DIAGNOSTIC_UNSPECIFIED",
            "ECHO_FUNCTION_FAILED",
            "FORWARDING_PLANE_RESET",
            "NEIGHBOR_SIGNALED_SESSION_DOWN",
            "NO_DIAGNOSTIC",
            "PATH_DOWN",
            "REVERSE_CONCATENATED_PATH_DOWN"
          ]
        },
        "localState": {
          "description": "The current BFD session state as seen by the transmitting system. These\nstates are specified in section 4.1 ofRFC5880",
          "type": "string",
          "enum": [
            "ADMIN_DOWN",
            "DOWN",
            "INIT",
            "STATE_UNSPECIFIED",
            "UP"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ]
        }
      },
      "type": "object"
    },
    "AllocationAggregateReservation": {
      "description": "This reservation type is specified by total resource amounts (e.g. total\ncount of CPUs) and can account for multiple instance SKUs. In other words,\none can create instances of varying shapes against this reservation.",
      "properties": {
        "reservedResources": {
          "type": "array",
          "description": "List of reserved resources (CPUs, memory, accelerators).",
          "items": {
            "$ref": "AllocationAggregateReservationReservedResourceInfo"
          }
        },
        "workloadType": {
          "description": "The workload type of the instances that will target this reservation.",
          "enum": [
            "BATCH",
            "SERVING",
            "UNSPECIFIED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Reserved resources will be optimized for BATCH workloads, such as ML\ntraining.",
            "Reserved resources will be optimized for SERVING workloads, such as ML\ninference.",
            ""
          ]
        },
        "inUseResources": {
          "items": {
            "$ref": "AllocationAggregateReservationReservedResourceInfo"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output only] List of resources currently in use."
        },
        "vmFamily": {
          "description": "The VM family that all instances scheduled against this reservation must\nbelong to.",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "VM_FAMILY_CLOUD_TPU_DEVICE_CT3",
            "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L",
            "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP",
            "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X"
          ],
          "type": "string"
        }
      },
      "id": "AllocationAggregateReservation",
      "type": "object"
    },
    "ResourceStatusEffectiveInstanceMetadata": {
      "id": "ResourceStatusEffectiveInstanceMetadata",
      "description": "Effective values of predefined metadata keys for an instance.",
      "type": "object",
      "properties": {
        "serialPortEnableMetadataValue": {
          "type": "boolean",
          "description": "Effective serial-port-enable value at Instance level."
        },
        "enableOsInventoryMetadataValue": {
          "description": "Effective enable-os-inventory value at Instance level.",
          "type": "boolean"
        },
        "vmDnsSettingMetadataValue": {
          "description": "Effective VM DNS setting at Instance level.",
          "type": "string"
        },
        "enableOsconfigMetadataValue": {
          "description": "Effective enable-osconfig value at Instance level.",
          "type": "boolean"
        },
        "gceContainerDeclarationMetadataValue": {
          "description": "Effective gce-container-declaration value at Instance level.",
          "type": "boolean"
        },
        "enableOsloginMetadataValue": {
          "type": "boolean",
          "description": "Effective enable-oslogin value at Instance level."
        },
        "blockProjectSshKeysMetadataValue": {
          "description": "Effective block-project-ssh-keys value at Instance level.",
          "type": "boolean"
        },
        "enableGuestAttributesMetadataValue": {
          "description": "Effective enable-guest-attributes value at Instance level.",
          "type": "boolean"
        },
        "serialPortLoggingEnableMetadataValue": {
          "type": "boolean",
          "description": "Effective serial-port-logging-enable value at Instance level."
        }
      }
    },
    "Uint128": {
      "id": "Uint128",
      "type": "object",
      "properties": {
        "high": {
          "type": "string",
          "format": "uint64"
        },
        "low": {
          "format": "uint64",
          "type": "string"
        }
      }
    },
    "NodeGroupAggregatedList": {
      "type": "object",
      "id": "NodeGroupAggregatedList",
      "properties": {
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "items": {
          "type": "object",
          "additionalProperties": {
            "description": "[Output Only] Name of the scope containing this set of node groups.",
            "$ref": "NodeGroupsScopedList"
          },
          "description": "A list of NodeGroupsScopedList resources."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource.Alwayscompute#nodeGroupAggregatedList for aggregated lists of node\ngroups.",
          "default": "compute#nodeGroupAggregatedList",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        }
      }
    },
    "InterconnectRemoteLocationConstraintsSubnetLengthRange": {
      "id": "InterconnectRemoteLocationConstraintsSubnetLengthRange",
      "properties": {
        "min": {
          "format": "int32",
          "type": "integer"
        },
        "max": {
          "type": "integer",
          "format": "int32"
        }
      },
      "type": "object"
    },
    "VpnTunnelsScopedList": {
      "properties": {
        "warning": {
          "description": "Informational warning which replaces the list of addresses when\nthe list is empty.",
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              }
            }
          }
        },
        "vpnTunnels": {
          "items": {
            "$ref": "VpnTunnel"
          },
          "type": "array",
          "description": "A list of VPN tunnels contained in this scope."
        }
      },
      "type": "object",
      "id": "VpnTunnelsScopedList"
    },
    "ReservationSubBlockHealthInfo": {
      "properties": {
        "degradedHostCount": {
          "description": "The number of degraded hosts in the reservation subBlock.",
          "format": "int32",
          "type": "integer"
        },
        "healthStatus": {
          "description": "The health status of the reservation subBlock.",
          "enumDescriptions": [
            "The reservation subBlock is degraded.",
            "The reservation subBlock is healthy.",
            "The health status of the reservation subBlock is unspecified."
          ],
          "type": "string",
          "enum": [
            "DEGRADED",
            "HEALTHY",
            "HEALTH_STATUS_UNSPECIFIED"
          ]
        },
        "healthyHostCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of healthy hosts in the reservation subBlock."
        },
        "degradedInfraCount": {
          "format": "int32",
          "description": "The number of degraded infrastructure (e.g NV link domain) in the\nreservation subblock.",
          "type": "integer"
        },
        "healthyInfraCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of healthy infrastructure (e.g NV link domain) in the\nreservation subblock."
        }
      },
      "id": "ReservationSubBlockHealthInfo",
      "description": "Health information for the reservation subBlock.",
      "type": "object"
    },
    "FutureResourcesSpecTargetResources": {
      "description": "Specification of reserved resources.",
      "type": "object",
      "id": "FutureResourcesSpecTargetResources",
      "properties": {
        "aggregateResources": {
          "$ref": "FutureResourcesSpecAggregateResources"
        },
        "specificSkuResources": {
          "$ref": "FutureResourcesSpecSpecificSKUResources"
        }
      }
    },
    "InterconnectRemoteLocationPermittedConnections": {
      "id": "InterconnectRemoteLocationPermittedConnections",
      "type": "object",
      "properties": {
        "interconnectLocation": {
          "description": "Output only. [Output Only] URL of an Interconnect location that is permitted to\nconnect to this Interconnect remote location.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "ResourcePolicySnapshotSchedulePolicySchedule": {
      "type": "object",
      "id": "ResourcePolicySnapshotSchedulePolicySchedule",
      "description": "A schedule for disks where the schedueled operations are performed.",
      "properties": {
        "weeklySchedule": {
          "$ref": "ResourcePolicyWeeklyCycle"
        },
        "hourlySchedule": {
          "$ref": "ResourcePolicyHourlyCycle"
        },
        "dailySchedule": {
          "$ref": "ResourcePolicyDailyCycle"
        }
      }
    },
    "BulkInsertInstanceResourcePerInstanceProperties": {
      "id": "BulkInsertInstanceResourcePerInstanceProperties",
      "properties": {
        "hostname": {
          "description": "Specifies the hostname of the instance. More details in:\nhttps://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention",
          "type": "string"
        },
        "name": {
          "description": "Output only. This field is only temporary. It will be removed. Do not use it.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Per-instance properties to be set on individual instances.\nTo be extended in the future.",
      "type": "object"
    },
    "AutoscalingPolicyCustomMetricUtilization": {
      "description": "Custom utilization metric policy.",
      "properties": {
        "utilizationTargetType": {
          "enumDescriptions": [
            "Sets the utilization target value for a cumulative or delta metric,\nexpressed as the rate of growth per minute.",
            "Sets the utilization target value for a cumulative or delta metric,\nexpressed as the rate of growth per second.",
            "Sets the utilization target value for a gauge metric. The autoscaler\nwill collect the average utilization of the virtual machines from the\nlast couple of minutes, and compare the value to the utilization\ntarget value to perform autoscaling."
          ],
          "description": "Defines how target utilization value is expressed for a Stackdriver\nMonitoring metric. Either GAUGE,DELTA_PER_SECOND, or DELTA_PER_MINUTE.",
          "type": "string",
          "enum": [
            "DELTA_PER_MINUTE",
            "DELTA_PER_SECOND",
            "GAUGE"
          ]
        },
        "singleInstanceAssignment": {
          "type": "number",
          "format": "double",
          "description": "If scaling is based on a per-group metric value that represents the\ntotal amount of work to be done or resource usage, set this value to an\namount assigned for a single instance of the scaled group. Autoscaler\nkeeps the number of instances proportional to the value of this\nmetric. The metric itself does not change value due to group\nresizing.\n\nA good metric to use with the target is for examplepubsub.googleapis.com/subscription/num_undelivered_messages\nor a custom metric exporting the total number of requests coming to\nyour instances.\n\nA bad example would be a metric exporting an average or median latency,\nsince this value can't include a chunk assignable to a single instance,\nit could be better used with utilization_target instead."
        },
        "metric": {
          "type": "string",
          "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric\ncannot have negative values.\n\nThe metric must have a value type of INT64 orDOUBLE."
        },
        "filter": {
          "description": "A filter string, compatible with a Stackdriver Monitoringfilter string forTimeSeries.list API call. This filter is\nused to select a specific TimeSeries for the purpose of autoscaling and\nto determine whether the metric is exporting per-instance or\nper-group data.\n\nFor the filter to be valid for autoscaling purposes, the following rules\napply:\n   \n   \n    - You can only use the AND operator for joining\n       selectors.\n    - You can only use direct equality comparison operator\n       (=) without any functions for each selector.\n    - You can specify the metric in both the filter string and in the\n       metric field. However, if specified in both places, the metric must\n       be identical.\n    - The monitored resource type\n       determines what kind of values are expected for the metric. If it is\n       a gce_instance, the autoscaler expects the metric to\n       include a separate TimeSeries for each instance in a group. In such a\n       case, you cannot filter on resource labels.\n       \n   \n   If the resource type is any other value, the autoscaler expects\n       this metric to contain values that apply to the entire autoscaled\n       instance group and resource label filtering can be performed to\n       point autoscaler at the correct TimeSeries to scale upon. This is\n       called a *per-group metric* for the purpose of autoscaling.\n   \n       If not specified, the type defaults to\n       gce_instance.\n\n\n\nTry to provide a filter that is selective enough to pick just one\nTimeSeries for the autoscaled group or for each of the instances (if you\nare using gce_instance resource type). If multiple\nTimeSeries are returned upon the query execution, the autoscaler will sum\ntheir respective values to obtain its scaling value.",
          "type": "string"
        },
        "utilizationTarget": {
          "type": "number",
          "format": "double",
          "description": "The target value of the metric that autoscaler maintains. This\nmust be a positive value. A utilization metric scales number of\nvirtual machines handling requests to increase or decrease\nproportionally to the metric.\n\nFor example, a good metric to use as a utilization_target ishttps://www.googleapis.com/compute/v1/instance/network/received_bytes_count.\nThe autoscaler works to keep this value constant for each of the\ninstances."
        }
      },
      "type": "object",
      "id": "AutoscalingPolicyCustomMetricUtilization"
    },
    "MachineTypeList": {
      "type": "object",
      "id": "MachineTypeList",
      "properties": {
        "items": {
          "description": "A list of MachineType resources.",
          "type": "array",
          "items": {
            "$ref": "MachineType"
          }
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "kind": {
          "default": "compute#machineTypeList",
          "description": "Output only. [Output Only] Type of resource. Always compute#machineTypeList\nfor lists of machine types.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        }
      },
      "description": "Contains a list of machine types."
    },
    "HTTPSHealthCheck": {
      "type": "object",
      "id": "HTTPSHealthCheck",
      "properties": {
        "proxyHeader": {
          "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.",
          "type": "string",
          "enum": [
            "NONE",
            "PROXY_V1"
          ],
          "enumDescriptions": [
            "",
            ""
          ]
        },
        "requestPath": {
          "description": "The request path of the HTTPS health check request. The default value is/. Must comply withRFC3986.",
          "type": "string"
        },
        "port": {
          "format": "int32",
          "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 443. Valid values are 1 through65535.",
          "type": "integer"
        },
        "portSpecification": {
          "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools.  Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group.  For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.",
          "enum": [
            "USE_FIXED_PORT",
            "USE_NAMED_PORT",
            "USE_SERVING_PORT"
          ],
          "enumDescriptions": [
            "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.",
            "Not supported.",
            "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports."
          ],
          "type": "string"
        },
        "portName": {
          "type": "string",
          "description": "Not supported."
        },
        "response": {
          "description": "Creates a content-based HTTPS health check. In addition to the required\nHTTP 200 (OK) status code, you can configure the health check to pass only\nwhen the backend sends this specific ASCII response string within the first\n1024 bytes of the HTTP response body. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http",
          "type": "string"
        },
        "host": {
          "type": "string",
          "description": "The value of the host header in the HTTPS health check request. If left\nempty (default value), the host header is set to the destination IP address\nto which health check packets are sent. The destination IP address depends\non the type of load balancer. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest"
        }
      }
    },
    "NetworkEndpointGroupList": {
      "properties": {
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "type": "string",
          "default": "compute#networkEndpointGroupList",
          "readOnly": true,
          "description": "Output only. [Output Only] The resource type, which is alwayscompute#networkEndpointGroupList for network endpoint group\nlists."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "NetworkEndpointGroup"
          },
          "description": "A list of NetworkEndpointGroup resources."
        }
      },
      "id": "NetworkEndpointGroupList",
      "type": "object"
    },
    "InstanceParams": {
      "type": "object",
      "description": "Additional instance params.",
      "id": "InstanceParams",
      "properties": {
        "requestValidForDuration": {
          "$ref": "Duration",
          "description": "Relative deadline for waiting for capacity. Relevant only for\nInstances.Insert API."
        },
        "resourceManagerTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Input only. Resource manager tags to be bound to the instance. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT &\nPATCH) when empty."
        }
      }
    },
    "ManagedRuleset": {
      "description": "Represents a ManagedRuleset resource.\n\nManaged internally by Cloud Armor CLH for Managed Rules features.\nCustomers can only view these resources to modify their Security Policies.\nFor more information, see\nhttps://cloud.google.com/armor/docs/.",
      "properties": {
        "changeLog": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The change log for this managed ruleset."
        },
        "id": {
          "format": "uint64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp in RFC3339 text format.",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "rulesetId": {
          "type": "string",
          "description": "Output only. [Output Only] The managed ruleset identifier that can be configured in\nSecurity Policy rules.",
          "readOnly": true
        },
        "ruleIds": {
          "description": "Output only. [Output Only] The list of managed rule IDs that are included in\nthis managed ruleset.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Generated internally when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "description": {
          "type": "string",
          "description": "[Output Only] An optional description of this resource."
        }
      },
      "type": "object",
      "id": "ManagedRuleset"
    },
    "BackendBucketCdnPolicyCacheKeyPolicy": {
      "type": "object",
      "description": "Message containing what to include in the cache key for a request for\nCloud CDN.",
      "id": "BackendBucketCdnPolicyCacheKeyPolicy",
      "properties": {
        "includeHttpHeaders": {
          "description": "Allows HTTP request headers (by name) to be used in the cache key.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "queryStringWhitelist": {
          "description": "Names of query string parameters to include in cache keys. Default\nparameters are always included. '&' and '=' will be percent encoded\nand not treated as delimiters.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "CustomerEncryptionKey": {
      "id": "CustomerEncryptionKey",
      "type": "object",
      "properties": {
        "rsaEncryptedKey": {
          "deprecated": true,
          "type": "string",
          "description": "[DEPRECATED] CSEK is no longer supported. Use CMEK instead.\nSpecifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt this\nresource. You can provide either the rawKey or thersaEncryptedKey.\nFor example:\n\n\"rsaEncryptedKey\":\n\"ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH\nz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD\nD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==\"\n\nThe key must meet the following requirements before you can provide it to \nCompute Engine: \n   \n   1. The key is wrapped using a RSA public key certificate provided by \n   Google. \n   2. After being wrapped, the key must be encoded in RFC 4648 base64 \n   encoding. \n\nGets the RSA public key certificate provided by Google at: \n\n\nhttps://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem"
        },
        "kmsKeyName": {
          "description": "The name of the encryption key that is stored in Google Cloud KMS.\nFor example:\n\n\"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/\nkey_region/cryptoKeys/key\n\nThe fully-qualifed key name may be returned for resource GET requests. For \nexample: \n\n\"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/\nkey_region/cryptoKeys/key\n/cryptoKeyVersions/1",
          "type": "string"
        },
        "kmsKeyServiceAccount": {
          "type": "string",
          "description": "The service account being used for the encryption request for the given KMS\nkey. If absent, the Compute Engine default service account is used.\nFor example:\n\n\"kmsKeyServiceAccount\": \"name@project_id.iam.gserviceaccount.com/"
        },
        "rawKey": {
          "description": "[DEPRECATED] CSEK is no longer supported. Use CMEK instead.\nSpecifies a 256-bit customer-supplied\nencryption key, encoded in RFC\n4648 base64 to either encrypt or decrypt this resource. You can\nprovide either the rawKey or thersaEncryptedKey.\nFor example:\n\n\"rawKey\":\n\"SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=\"",
          "deprecated": true,
          "type": "string"
        },
        "sha256": {
          "deprecated": true,
          "type": "string",
          "description": "[DEPRECATED] CSEK is no longer supported. Use CMEK instead.\n[Output only] TheRFC\n4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource."
        }
      }
    },
    "OperationAggregatedList": {
      "type": "object",
      "id": "OperationAggregatedList",
      "properties": {
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger than\n`maxResults`, use the `nextPageToken` as a value for\nthe query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to\ncontinue paging through the results.",
          "type": "string"
        },
        "items": {
          "type": "object",
          "description": "[Output Only] A map of scoped operation lists.",
          "additionalProperties": {
            "$ref": "OperationsScopedList",
            "description": "[Output Only] Name of the scope containing this set of operations."
          }
        },
        "kind": {
          "default": "compute#operationAggregatedList",
          "description": "Output only. [Output Only] Type of resource. Always `compute#operationAggregatedList`\nfor aggregated lists of operations.",
          "type": "string",
          "readOnly": true
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            }
          },
          "type": "object"
        }
      }
    },
    "NodeTypeAggregatedList": {
      "id": "NodeTypeAggregatedList",
      "properties": {
        "kind": {
          "default": "compute#nodeTypeAggregatedList",
          "description": "Output only. [Output Only] Type of resource.Alwayscompute#nodeTypeAggregatedList for aggregated lists of node\ntypes.",
          "type": "string",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "items": {
          "type": "object",
          "description": "A list of NodeTypesScopedList resources.",
          "additionalProperties": {
            "description": "[Output Only] Name of the scope containing this set of node types.",
            "$ref": "NodeTypesScopedList"
          }
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            }
          }
        }
      },
      "type": "object"
    },
    "ShieldedInstanceIdentity": {
      "properties": {
        "signingKey": {
          "description": "An Attestation Key (AK) made by the RSA 2048 algorithm\nissued to the Shielded Instance's vTPM.",
          "$ref": "ShieldedInstanceIdentityEntry"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#shieldedInstanceIdentity for shielded Instance\nidentity entry.",
          "default": "compute#shieldedInstanceIdentity",
          "type": "string",
          "readOnly": true
        },
        "eccP256SigningKey": {
          "$ref": "ShieldedInstanceIdentityEntry",
          "description": "An Attestation Key (AK) made by the ECC P256 algorithm\nissued to the Shielded Instance's vTPM."
        },
        "eccP256EncryptionKey": {
          "description": "An Endorsement Key (EK) made by the ECC P256 algorithm\nissued to the Shielded Instance's vTPM.",
          "$ref": "ShieldedInstanceIdentityEntry"
        },
        "encryptionKey": {
          "description": "An Endorsement Key (EK) made by the RSA 2048 algorithm\nissued to the Shielded Instance's vTPM.",
          "$ref": "ShieldedInstanceIdentityEntry"
        }
      },
      "description": "A Shielded Instance Identity.",
      "id": "ShieldedInstanceIdentity",
      "type": "object"
    },
    "PublicDelegatedPrefix": {
      "description": "A PublicDelegatedPrefix resource represents an IP block within a\nPublicAdvertisedPrefix that is configured within a single cloud scope\n(global or region). IPs in the block can be allocated to resources within\nthat scope. Public delegated prefixes may be further broken up into\nsmaller IP blocks in the same scope as the parent block.",
      "id": "PublicDelegatedPrefix",
      "properties": {
        "mode": {
          "type": "string",
          "description": "The public delegated prefix mode for IPv6 only.",
          "enumDescriptions": [
            "The public delegated prefix is used for further sub-delegation only. Such\nprefixes cannot set allocatablePrefixLength.",
            "The public delegated prefix is used for creating forwarding rules only.\nSuch prefixes cannot set publicDelegatedSubPrefixes. Parent public\ndelegated prefix must have IPv6 access type as EXTERNAL.",
            "The public delegated prefix is used for creating dual-mode subnetworks\nonly. Such prefixes cannot set publicDelegatedSubPrefixes. Parent public\ndelegated prefix must have IPv6 access type as EXTERNAL.",
            "The public delegated prefix is used for creating dual stack or IPv6-only\nsubnetwork with internal access only. Such prefixes cannot set\npublicDelegatedSubPrefixes and allocatablePrefixLength. Parent public\ndelegated prefix must have IPv6 access type as INTERNAL."
          ],
          "enum": [
            "DELEGATION",
            "EXTERNAL_IPV6_FORWARDING_RULE_CREATION",
            "EXTERNAL_IPV6_SUBNETWORK_CREATION",
            "INTERNAL_IPV6_SUBNETWORK_CREATION"
          ]
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource."
        },
        "ipCidrRange": {
          "description": "The IP address range, in CIDR format, represented by this public\ndelegated prefix.",
          "type": "string"
        },
        "publicDelegatedSubPrefixs": {
          "type": "array",
          "items": {
            "$ref": "PublicDelegatedPrefixPublicDelegatedSubPrefix"
          },
          "description": "The list of sub public delegated prefixes that exist for this public\ndelegated prefix."
        },
        "ipv6AccessType": {
          "enumDescriptions": [
            "The parent public advertised prefix will be announced to the internet.\nAll children public delegated prefixes will have IPv6 access type as\nEXTERNAL.",
            "The parent public advertised prefix will not be announced to the\ninternet. Prefix will be used privately within Cloud. All children\npublic delegated prefixes will have IPv6 access type as INTERNAL."
          ],
          "type": "string",
          "enum": [
            "EXTERNAL",
            "INTERNAL"
          ],
          "description": "Output only. [Output Only] The internet access type for IPv6 Public Delegated Prefixes.\nInherited from parent prefix.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "allocatablePrefixLength": {
          "description": "The allocatable prefix length supported by this public delegated prefix.\nThis field is optional and cannot be set for prefixes in DELEGATION mode.\nIt cannot be set for IPv4 prefixes either, and it always defaults to 32.",
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "annotations": {
            "required": [
              "compute.publicDelegatedPrefixes.insert"
            ]
          }
        },
        "isLiveMigration": {
          "description": "If true, the prefix will be live migrated.",
          "type": "boolean"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "enableEnhancedIpv4Allocation": {
          "readOnly": true,
          "description": "Output only. [Output Only] Whether this PDP supports enhanced IPv4 allocations.\nApplicable for IPv4 PDPs only.",
          "type": "boolean"
        },
        "region": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] URL of the region where the public delegated prefix resides.\nThis field applies only to the region resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body."
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#publicDelegatedPrefix for public delegated prefixes.",
          "default": "compute#publicDelegatedPrefix"
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.",
          "readOnly": true,
          "type": "string",
          "format": "uint64"
        },
        "parentPrefix": {
          "description": "The URL of parent prefix. Either PublicAdvertisedPrefix or\nPublicDelegatedPrefix.",
          "type": "string"
        },
        "byoipApiVersion": {
          "description": "Output only. [Output Only] The version of BYOIP API.",
          "enum": [
            "V1",
            "V2"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "This public delegated prefix usually takes 4 weeks to delete, and the BGP\nstatus cannot be changed. Announce and Withdraw APIs can not be used on\nthis prefix.",
            "This public delegated prefix takes minutes to delete. Announce and\nWithdraw APIs can be used on this prefix to change the BGP status."
          ],
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "[Output Only] The status of the public delegated prefix, which can be one\nof following values:\n   \n   \n     - `INITIALIZING` The public delegated prefix is being initialized and\n     addresses cannot be created yet.\n     - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration\n     prefix and is active.\n     - `ANNOUNCED` The public delegated prefix is announced and ready to\n     use.\n     - `DELETING` The public delegated prefix is being deprovsioned.\n     - `ACTIVE` The public delegated prefix is ready to use.",
          "enumDescriptions": [
            "The public delegated prefix is ready to use.",
            "The public delegated prefix is announced and ready to use.",
            "The prefix is announced within Google network.",
            "The prefix is announced to Internet and within Google.",
            "The public delegated prefix is being deprovsioned.",
            "The public delegated prefix is being initialized and addresses cannot be\ncreated yet.",
            "The public delegated prefix is currently withdrawn but ready to be\nannounced."
          ],
          "enum": [
            "ACTIVE",
            "ANNOUNCED",
            "ANNOUNCED_TO_GOOGLE",
            "ANNOUNCED_TO_INTERNET",
            "DELETING",
            "INITIALIZING",
            "READY_TO_ANNOUNCE"
          ]
        },
        "fingerprint": {
          "type": "string",
          "format": "byte",
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a new PublicDelegatedPrefix. An up-to-date\nfingerprint must be provided in order to update thePublicDelegatedPrefix, otherwise the request will fail with\nerror 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a PublicDelegatedPrefix."
        }
      },
      "type": "object"
    },
    "ReservationSubBlock": {
      "description": "Represents a reservation subBlock resource.",
      "id": "ReservationSubBlock",
      "type": "object",
      "properties": {
        "zone": {
          "description": "Output only. [Output Only] Zone in which the reservation subBlock resides.",
          "type": "string",
          "readOnly": true
        },
        "inUseCount": {
          "type": "integer",
          "description": "Output only. [Output Only] The number of instances that are currently in use on this\nreservation subBlock.",
          "format": "int32",
          "readOnly": true
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339 text format."
        },
        "acceleratorTopologiesInfo": {
          "$ref": "AcceleratorTopologiesInfo",
          "description": "Output only. [Output Only] Slice info for the reservation subBlock.",
          "readOnly": true
        },
        "selfLinkWithId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#reservationSubBlock for reservation subBlocks.",
          "default": "compute#reservationSubBlock",
          "type": "string",
          "readOnly": true
        },
        "healthInfo": {
          "$ref": "ReservationSubBlockHealthInfo",
          "description": "Output only. [Output Only] Health information for the reservation subBlock.",
          "readOnly": true
        },
        "id": {
          "format": "uint64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "status": {
          "enumDescriptions": [
            "Resources are being allocated for the reservation subBlock.",
            "Reservation subBlock is currently being deleted.",
            "",
            "Reservation subBlock has allocated all its resources."
          ],
          "type": "string",
          "readOnly": true,
          "enum": [
            "CREATING",
            "DELETING",
            "INVALID",
            "READY"
          ],
          "description": "Output only. [Output Only] Status of the reservation subBlock."
        },
        "reservationSubBlockMaintenance": {
          "description": "Output only. Maintenance information for this reservation subBlock.",
          "readOnly": true,
          "$ref": "GroupMaintenanceInfo"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource."
        },
        "name": {
          "description": "Output only. [Output Only] The name of this reservation subBlock generated by Google\nCompute Engine. The name must be 1-63 characters long, and comply with\nRFC1035 @pattern [a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "readOnly": true
        },
        "inUseHostCount": {
          "format": "int32",
          "type": "integer",
          "description": "Output only. Number of hosts currently in use. If there is one or more Instances running\non the host, it is considered in use.",
          "readOnly": true
        },
        "physicalTopology": {
          "description": "Output only. [Output Only] The physical topology of the reservation subBlock.",
          "readOnly": true,
          "$ref": "ReservationSubBlockPhysicalTopology"
        },
        "count": {
          "readOnly": true,
          "description": "Output only. [Output Only] The number of hosts that are allocated in this\nreservation subBlock.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "ReservationsBlocksPerformMaintenanceRequest": {
      "type": "object",
      "properties": {
        "maintenanceScope": {
          "enumDescriptions": [
            "Trigger maintenance for all hosts belonging to this reservation\nirrespective of whether VMs are running on them or not.",
            "Internal only",
            "Trigger maintenance only on the hosts belonging to this reservation which\nhave VMs running on them.",
            "Trigger maintenance only on the hosts belonging to this reservation which\ndo not have any VMs running on them. This is not allowed for Standard ExR"
          ],
          "enum": [
            "ALL",
            "MAINTENANCE_SCOPE_UNSPECIFIED",
            "RUNNING_VMS",
            "UNUSED_CAPACITY"
          ],
          "type": "string",
          "description": "Specifies if all, running or unused hosts are in scope for this request."
        }
      },
      "id": "ReservationsBlocksPerformMaintenanceRequest"
    },
    "NetworkProfile": {
      "id": "NetworkProfile",
      "properties": {
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Name of the resource.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Output only. [Output Only] An optional description of this resource.",
          "readOnly": true
        },
        "profileType": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the network profile.",
          "$ref": "NetworkProfileProfileType"
        },
        "location": {
          "readOnly": true,
          "description": "Output only. [Output Only] Location to which the network is restricted.",
          "$ref": "NetworkProfileLocation"
        },
        "features": {
          "description": "Output only. [Output Only] Features supported by the network.",
          "$ref": "NetworkProfileNetworkFeatures",
          "readOnly": true
        },
        "selfLinkWithId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id."
        },
        "kind": {
          "default": "compute#networkProfile",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#networkProfile for network profiles.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "NetworkProfile represents a Google managed network profile resource.",
      "type": "object"
    },
    "CacheKeyPolicy": {
      "id": "CacheKeyPolicy",
      "description": "Message containing what to include in the cache key for a request for Cloud\nCDN.",
      "properties": {
        "includeHost": {
          "type": "boolean",
          "description": "If true, requests to different hosts will be cached separately."
        },
        "includeHttpHeaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Allows HTTP request headers (by name) to be used in the cache key."
        },
        "includeNamedCookies": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Allows HTTP cookies (by name) to be used in the cache key.\nThe name=value pair will be used in the cache key Cloud CDN generates."
        },
        "queryStringWhitelist": {
          "type": "array",
          "description": "Names of query string parameters to include in cache keys. All other\nparameters will be excluded. Either specify query_string_whitelist or\nquery_string_blacklist, not both. '&' and '=' will be percent encoded and\nnot treated as delimiters.",
          "items": {
            "type": "string"
          }
        },
        "queryStringBlacklist": {
          "description": "Names of query string parameters to exclude in cache keys. All other\nparameters will be included. Either specify query_string_whitelist or\nquery_string_blacklist, not both. '&' and '=' will be percent encoded and\nnot treated as delimiters.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "includeProtocol": {
          "description": "If true, http and https requests will be cached separately.",
          "type": "boolean"
        },
        "includeQueryString": {
          "type": "boolean",
          "description": "If true, include query string parameters in the cache key according to\nquery_string_whitelist and query_string_blacklist. If neither is set, the\nentire query string will be included. If false, the query string will be\nexcluded from the cache key entirely."
        }
      },
      "type": "object"
    },
    "VpnGatewayStatus": {
      "id": "VpnGatewayStatus",
      "type": "object",
      "properties": {
        "vpnConnections": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "VpnGatewayStatusVpnConnection"
          },
          "description": "Output only. List of VPN connection for this VpnGateway."
        }
      }
    },
    "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": {
      "properties": {
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the firewall policy."
        },
        "type": {
          "enum": [
            "HIERARCHY",
            "NETWORK",
            "NETWORK_REGIONAL",
            "SYSTEM_GLOBAL",
            "SYSTEM_REGIONAL",
            "UNSPECIFIED"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The type of the firewall policy. Can be one of HIERARCHY,\nNETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL."
        },
        "rules": {
          "type": "array",
          "description": "[Output Only] The rules that apply to the instance. Only rules that\ntarget the specific VM instance are returned if target service accounts\nor target secure tags are specified in the rules.",
          "items": {
            "$ref": "FirewallPolicyRule"
          }
        },
        "packetMirroringRules": {
          "description": "Output only. [Output Only] The packet mirroring rules that apply to the instance.",
          "type": "array",
          "items": {
            "$ref": "FirewallPolicyRule"
          },
          "readOnly": true
        },
        "priority": {
          "description": "Output only. [Output only] Priority of firewall policy association. Not applicable for\ntype=HIERARCHY.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "displayName": {
          "readOnly": true,
          "deprecated": true,
          "description": "Output only. [Output Only] Deprecated, please use short name instead. The display name\nof the firewall policy.",
          "type": "string"
        },
        "shortName": {
          "description": "Output only. [Output Only] The short name of the firewall policy.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
      "type": "object"
    },
    "TargetPoolList": {
      "type": "object",
      "properties": {
        "items": {
          "items": {
            "$ref": "TargetPool"
          },
          "description": "A list of TargetPool resources.",
          "type": "array"
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Always compute#targetPoolList\nfor lists of target pools.",
          "readOnly": true,
          "default": "compute#targetPoolList"
        }
      },
      "id": "TargetPoolList",
      "description": "Contains a list of TargetPool resources."
    },
    "HttpRouteAction": {
      "type": "object",
      "properties": {
        "faultInjectionPolicy": {
          "$ref": "HttpFaultInjection",
          "description": "The specification for fault injection introduced into traffic to test\nthe resiliency of clients to backend service failure. As part of fault\ninjection, when clients send requests to a backend service, delays can be\nintroduced by a load balancer on a percentage of requests before sending\nthose requests to the backend service. Similarly requests from clients can\nbe aborted by the load balancer for a percentage of requests.timeout and retry_policy is ignored by clients\nthat are configured with a fault_injection_policy if:\n1. The traffic is generated by fault injection AND\n2. The fault injection is not a delay fault injection.\nFault injection is not supported with the classic Application Load Balancer\n. To see which load balancers support fault injection,\nsee Load\nbalancing: Routing and traffic management features."
        },
        "requestMirrorPolicy": {
          "$ref": "RequestMirrorPolicy",
          "description": "Specifies the policy on how requests intended for the route's backends\nare shadowed to a separate mirrored backend service. The load balancer does\nnot wait for responses from the shadow service. Before sending traffic\nto the shadow service, the host / authority header is suffixed with-shadow.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas the validateForProxyless field set to true."
        },
        "corsPolicy": {
          "description": "The specification for allowing client-side cross-origin requests. For more\ninformation about the W3C recommendation for cross-origin resource sharing\n(CORS), see Fetch API Living\nStandard.\n\nNot supported when the URL map is bound to a target gRPC proxy.",
          "$ref": "CorsPolicy"
        },
        "maxStreamDuration": {
          "$ref": "Duration",
          "description": "Specifies the maximum duration (timeout) for streams on the selected route.\nUnlike the timeout field where the timeout duration starts\nfrom the time the request has been fully processed (known as*end-of-stream*),\nthe duration in this field is computed from the beginning of the stream\nuntil the response has been processed, including all retries. A\nstream that does not complete in this duration is closed.\n\nIf not specified, this field uses the maximummaxStreamDuration value among all backend services associated\nwith the route.\n\nThis field is only allowed if the Url map is used with backend services\nwith loadBalancingScheme set toINTERNAL_SELF_MANAGED."
        },
        "weightedBackendServices": {
          "type": "array",
          "items": {
            "$ref": "WeightedBackendService"
          },
          "description": "A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to\ntheir corresponding backend service. If all traffic needs to\ngo to a single backend service, there must be oneweightedBackendService with weight set to a non-zero number.\n\nAfter a backend service is identified and before forwarding\nthe request to\nthe backend service, advanced routing actions such as URL rewrites and\nheader transformations are applied depending on additional settings\nspecified in this HttpRouteAction."
        },
        "retryPolicy": {
          "description": "Specifies the retry policy associated with this route.",
          "$ref": "HttpRetryPolicy"
        },
        "cachePolicy": {
          "$ref": "CachePolicy",
          "description": "Specifies the cache policy configuration for matched traffic. Available\nonly for Global `EXTERNAL_MANAGED` load balancer schemes. At least one\nproperty must be specified. This policy cannot be specified if any target\nbackend has Identity-Aware Proxy enabled."
        },
        "timeout": {
          "description": "Specifies the timeout for the selected route. Timeout is computed from the\ntime the request has been fully processed (known as *end-of-stream*)\nup until the response has been processed. Timeout includes\nall retries.\n\nIf not specified, this field uses the largest timeout among all backend\nservices associated with the route.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true.",
          "$ref": "Duration"
        },
        "urlRewrite": {
          "description": "The spec to modify the URL of the request, before forwarding the request\nto the matched service.\n\n urlRewrite is the only action supported in UrlMaps\nfor classic Application Load Balancers.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas the validateForProxyless field set to true.",
          "$ref": "UrlRewrite"
        }
      },
      "id": "HttpRouteAction"
    },
    "ServiceAttachmentConsumerProjectLimit": {
      "properties": {
        "projectIdOrNum": {
          "type": "string",
          "description": "The project id or number for the project to set the limit for."
        },
        "connectionLimit": {
          "description": "The value of the limit to set. For endpoint_url, the limit should be no\nmore than 1.",
          "type": "integer",
          "format": "uint32"
        },
        "networkUrl": {
          "description": "The network URL for the network to set the limit for.",
          "type": "string"
        },
        "endpointUrl": {
          "type": "string",
          "description": "The URL for the PSC endpoint to accept"
        }
      },
      "type": "object",
      "id": "ServiceAttachmentConsumerProjectLimit"
    },
    "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": {
      "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk",
      "type": "object",
      "properties": {
        "diskSizeGb": {
          "description": "Specifies the size of the disk in base-2 GB.",
          "format": "int64",
          "type": "string"
        },
        "interface": {
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "enum": [
            "NVME",
            "SCSI"
          ],
          "description": "Specifies the disk interface to use for attaching this disk, which is\neither SCSI or NVME. The default isSCSI.\nFor performance characteristics of SCSI over NVMe, seeLocal SSD performance."
        }
      }
    },
    "InstancesBulkInsertOperationMetadata": {
      "properties": {
        "perLocationStatus": {
          "additionalProperties": {
            "$ref": "BulkInsertOperationStatus"
          },
          "description": "Status information per location (location name is key).\nExample key: zones/us-central1-a",
          "type": "object"
        }
      },
      "type": "object",
      "id": "InstancesBulkInsertOperationMetadata"
    },
    "NetworkPeeringConnectionStatus": {
      "type": "object",
      "id": "NetworkPeeringConnectionStatus",
      "properties": {
        "updateStrategy": {
          "enumDescriptions": [
            "Updates are reflected in the local peering but aren't applied to the\npeering connection until a complementary change is made to the\nmatching peering.\nTo delete a peering with the consensus update strategy, both the peerings\nmust request the deletion of the peering before the peering can be\ndeleted.",
            "In this mode, changes to the peering configuration can\nbe unilaterally altered by changing either side of the peering.\nThis is the default value if the field is unspecified.",
            "Peerings with update strategy UNSPECIFIED are created with\nupdate strategy INDEPENDENT."
          ],
          "type": "string",
          "description": "The update strategy determines the update/delete semantics for this\npeering connection.",
          "enum": [
            "CONSENSUS",
            "INDEPENDENT",
            "UNSPECIFIED"
          ]
        },
        "consensusState": {
          "$ref": "NetworkPeeringConnectionStatusConsensusState",
          "description": "The consensus state contains information about the status of update\nand delete for a consensus peering connection."
        },
        "trafficConfiguration": {
          "description": "The active connectivity settings for the peering connection based on the\nsettings of the network peerings.",
          "$ref": "NetworkPeeringConnectionStatusTrafficConfiguration"
        }
      },
      "description": "[Output Only] Describes the state of a peering connection, not just the\nlocal peering. This field provides information about the effective settings\nfor the connection as a whole, including pending delete/update requests for\nCONSENSUS peerings."
    },
    "ShareSettings": {
      "type": "object",
      "id": "ShareSettings",
      "properties": {
        "projectMap": {
          "additionalProperties": {
            "$ref": "ShareSettingsProjectConfig"
          },
          "description": "A map of project id and project config. This is only valid when\nshare_type's value is SPECIFIC_PROJECTS.",
          "type": "object"
        },
        "shareType": {
          "description": "Type of sharing for this shared-reservation",
          "enum": [
            "LOCAL",
            "ORGANIZATION",
            "SHARE_TYPE_UNSPECIFIED",
            "SPECIFIC_PROJECTS"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "Shared-reservation is open to entire Organization",
            "Default value. This value is unused.",
            "Shared-reservation is open to specific projects"
          ]
        }
      },
      "description": "The share setting for reservations and sole tenancy node groups."
    },
    "ProjectView": {
      "id": "ProjectView",
      "type": "object",
      "properties": {
        "project": {
          "$ref": "Project",
          "description": "The project data.\nThe returned Project data does not contain regional or zonal quota\nusage data. Global quota limits are present. For accurate, real-time quota\nusage numbers, query the global\n[projects.get](https://cloud.google.com/compute/docs/reference/rest/v1/projects/get)\nendpoint."
        }
      },
      "description": "Represents a ProjectView resource.\n\nA ProjectView resource contains read-only project data which is available\nglobally."
    },
    "SslCertificateSelfManagedSslCertificate": {
      "properties": {
        "privateKey": {
          "type": "string",
          "description": "A write-only private key in PEM format. Only insert\nrequests will include this field."
        },
        "certificate": {
          "type": "string",
          "description": "A local certificate file. The certificate must be in\nPEM format. The certificate chain must be no greater than 5 certs\nlong. The chain must include at least one intermediate cert."
        }
      },
      "description": "Configuration and status of a self-managed SSL certificate.",
      "id": "SslCertificateSelfManagedSslCertificate",
      "type": "object"
    },
    "InstanceGroupManagersListPerInstanceConfigsResp": {
      "id": "InstanceGroupManagersListPerInstanceConfigsResp",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "items": {
          "description": "Output only. [Output Only] The list of PerInstanceConfig.",
          "items": {
            "$ref": "PerInstanceConfig"
          },
          "readOnly": true,
          "type": "array"
        },
        "warning": {
          "type": "object",
          "description": "Output only. [Output Only] Informational warning message.",
          "readOnly": true,
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        }
      },
      "type": "object"
    },
    "InstanceProperties": {
      "id": "InstanceProperties",
      "properties": {
        "metadata": {
          "$ref": "Metadata",
          "description": "The metadata key/value pairs to assign to instances that are created from\nthese properties. These pairs can consist of custom metadata or predefined\nkeys. SeeProject and\ninstance metadata for more information."
        },
        "keyRevocationActionType": {
          "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and\n\"NONE\". The default value is \"NONE\" if it is not specified.",
          "enum": [
            "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED",
            "NONE",
            "STOP"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Indicates user chose no operation.",
            "Indicates user chose to opt for VM shutdown on key revocation."
          ]
        },
        "disks": {
          "type": "array",
          "description": "An array of disks that are associated with the instances that are created\nfrom these properties.",
          "items": {
            "$ref": "AttachedDisk"
          }
        },
        "networkInterfaces": {
          "type": "array",
          "items": {
            "$ref": "NetworkInterface"
          },
          "description": "An array of network access configurations for this interface."
        },
        "networkPerformanceConfig": {
          "description": "Note that for MachineImage, this is not supported yet.",
          "$ref": "NetworkPerformanceConfig"
        },
        "resourceManagerTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Input only. Resource manager tags to be bound to the instance. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT &\nPATCH) when empty."
        },
        "scheduling": {
          "$ref": "Scheduling",
          "description": "Specifies the scheduling options for the instances that are created from\nthese properties."
        },
        "guestAccelerators": {
          "items": {
            "$ref": "AcceleratorConfig"
          },
          "description": "A list of guest accelerator cards' type and count to use for instances\ncreated from these properties.",
          "type": "array"
        },
        "workloadIdentityConfig": {
          "$ref": "WorkloadIdentityConfig"
        },
        "resourcePolicies": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Resource policies (names, not URLs) applied to instances created from\nthese properties.\nNote that for MachineImage, this is not supported yet."
        },
        "confidentialInstanceConfig": {
          "description": "Specifies the Confidential Instance options.\nNote that for MachineImage, this is not supported yet.",
          "$ref": "ConfidentialInstanceConfig"
        },
        "localSsdEncryptionMode": {
          "enumDescriptions": [
            "The given VM will opt-in for using ephemeral key for\nencryption of Local SSDs.\nThe Local SSDs will not be able to recover data in case of VM\ncrash.",
            "The given VM will be encrypted using keys managed by the cloud\ninfrastructure and the keys will be deleted when the VM is\ndeleted.",
            "The given VM will be encrypted using keys managed by the cloud\ninfrastructure and the keys will be deleted when the VM is\ndeleted."
          ],
          "enum": [
            "EPHEMERAL_KEY_ENCRYPTION",
            "LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED",
            "STANDARD_ENCRYPTION"
          ],
          "description": "Specifies which method should be used for encrypting the\nLocal SSDs attached to the VM.",
          "type": "string"
        },
        "advancedMachineFeatures": {
          "$ref": "AdvancedMachineFeatures",
          "description": "Controls for advanced machine-related behavior features.\nNote that for MachineImage, this is not supported yet."
        },
        "tags": {
          "$ref": "Tags",
          "description": "A list of tags to apply to the instances that are created from these\nproperties. The tags identify valid sources or targets for network\nfirewalls. The setTags method can modify this list of tags. Each tag within\nthe list must comply with RFC1035."
        },
        "machineType": {
          "annotations": {
            "required": [
              "compute.instanceTemplates.insert"
            ]
          },
          "type": "string",
          "description": "The machine type to use for instances that are created from these\nproperties.\nThis field only accepts a machine type name, for example `n2-standard-4`.\nIf you use the machine type full or partial URL, for example\n`projects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4`,\nthe request will result in an `INTERNAL_ERROR`."
        },
        "canIpForward": {
          "type": "boolean",
          "description": "Enables instances created based on these properties to send packets with\nsource IP addresses other than their own and receive packets with\ndestination IP addresses other than their own. If these instances will be\nused as an IP gateway or it will be set as the next-hop in a Route\nresource, specify true. If unsure, leave this set tofalse. See theEnable IP forwarding\ndocumentation for more information."
        },
        "serviceAccounts": {
          "description": "A list of service accounts with specified scopes. Access tokens for these\nservice accounts are available to the instances that are created from\nthese properties. Use metadata queries to obtain the access tokens for\nthese instances.",
          "type": "array",
          "items": {
            "$ref": "ServiceAccount"
          }
        },
        "privateIpv6GoogleAccess": {
          "enum": [
            "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE",
            "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE",
            "INHERIT_FROM_SUBNETWORK"
          ],
          "enumDescriptions": [
            "Bidirectional private IPv6 access to/from Google services. If\nspecified, the subnetwork who is attached to the instance's default network\ninterface will be assigned an internal IPv6 prefix if it doesn't have\nbefore.",
            "Outbound private IPv6 access from VMs in this subnet to Google services. If\nspecified, the subnetwork who is attached to the instance's default network\ninterface will be assigned an internal IPv6 prefix if it doesn't have\nbefore.",
            "Each network interface inherits PrivateIpv6GoogleAccess from its\nsubnetwork."
          ],
          "type": "string",
          "description": "The private IPv6 google access type for VMs.\nIf not specified, use  INHERIT_FROM_SUBNETWORK as default.\nNote that for MachineImage, this is not supported yet."
        },
        "description": {
          "description": "An optional text description for the instances that are created from these\nproperties.",
          "type": "string"
        },
        "minCpuPlatform": {
          "description": "Minimum cpu/platform to be used by instances. The instance may be\nscheduled on the specified or newer cpu/platform. Applicable values are the\nfriendly names of CPU platforms, such asminCpuPlatform: \"Intel Haswell\" orminCpuPlatform: \"Intel Sandy Bridge\". For more\ninformation, read Specifying a\nMinimum CPU Platform.",
          "type": "string"
        },
        "shieldedInstanceConfig": {
          "description": "Note that for MachineImage, this is not supported yet.",
          "$ref": "ShieldedInstanceConfig"
        },
        "labels": {
          "description": "Labels to apply to instances that are created from these properties.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "reservationAffinity": {
          "$ref": "ReservationAffinity",
          "description": "Specifies the reservations that instances can consume from.\nNote that for MachineImage, this is not supported yet."
        }
      },
      "type": "object"
    },
    "NetworksUpdatePeeringRequest": {
      "type": "object",
      "properties": {
        "networkPeering": {
          "$ref": "NetworkPeering"
        }
      },
      "id": "NetworksUpdatePeeringRequest"
    },
    "RegionInstanceGroupList": {
      "id": "RegionInstanceGroupList",
      "properties": {
        "kind": {
          "default": "compute#regionInstanceGroupList",
          "description": "Output only. The resource type.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "items": {
          "type": "array",
          "description": "A list of InstanceGroup resources.",
          "items": {
            "$ref": "InstanceGroup"
          }
        },
        "warning": {
          "readOnly": true,
          "description": "Output only. [Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            }
          }
        }
      },
      "description": "Contains a list of InstanceGroup resources.",
      "type": "object"
    },
    "HostStatus": {
      "id": "HostStatus",
      "type": "object",
      "properties": {
        "physicalTopology": {
          "description": "Output only. The physical topology of the reservation sub-block, if\npresent",
          "$ref": "HostPhysicalTopology",
          "readOnly": true
        },
        "runningInstances": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "description": "Output only. The URIs of the instances currently running on this host."
        }
      }
    },
    "RiskDetailsGlobalDnsInsight": {
      "properties": {
        "queryObservationWindow": {
          "type": "string",
          "format": "google-duration",
          "description": "The observation window for the query counts."
        },
        "projectDefaultIsGlobalDns": {
          "description": "Indicates whether the project's default DNS setting is global DNS.",
          "type": "boolean"
        },
        "totalQueryCount": {
          "description": "The total number of queries in the observation window.",
          "format": "int64",
          "type": "string"
        },
        "riskyQueryCount": {
          "format": "int64",
          "description": "The number of queries that are risky. This is always less than or\nequal to total_query_count.",
          "type": "string"
        }
      },
      "description": "Detailed insights for a global DNS reliability risk.",
      "type": "object",
      "id": "RiskDetailsGlobalDnsInsight"
    },
    "RouterBgpPeerCustomLearnedIpRange": {
      "properties": {
        "range": {
          "description": "The custom learned route IP address range. Must be a valid\nCIDR-formatted prefix. If an IP address is provided without a subnet\nmask, it is interpreted as, for IPv4, a `/32` singular IP address\nrange, and, for IPv6, `/128`.",
          "type": "string"
        }
      },
      "id": "RouterBgpPeerCustomLearnedIpRange",
      "type": "object"
    },
    "TCPHealthCheck": {
      "id": "TCPHealthCheck",
      "type": "object",
      "properties": {
        "request": {
          "description": "Instructs the health check prober to send this exact ASCII string, up to\n1024 bytes in length, after establishing the TCP connection.",
          "type": "string"
        },
        "response": {
          "type": "string",
          "description": "Creates a content-based TCP health check. In addition to establishing a\nTCP connection, you can configure the health check to pass only when the\nbackend sends this exact response ASCII string, up to 1024 bytes in length.\nFor details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp"
        },
        "port": {
          "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 80. Valid values are 1 through65535.",
          "type": "integer",
          "format": "int32"
        },
        "portName": {
          "type": "string",
          "description": "Not supported."
        },
        "proxyHeader": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.",
          "enum": [
            "NONE",
            "PROXY_V1"
          ]
        },
        "portSpecification": {
          "enumDescriptions": [
            "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.",
            "Not supported.",
            "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports."
          ],
          "enum": [
            "USE_FIXED_PORT",
            "USE_NAMED_PORT",
            "USE_SERVING_PORT"
          ],
          "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \nUSE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools.  Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group.  For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.",
          "type": "string"
        }
      }
    },
    "LicenseParams": {
      "id": "LicenseParams",
      "description": "Additional license params.",
      "properties": {
        "resourceManagerTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Input only. Resource manager tags to be bound to the license. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT &\nPATCH) when empty."
        }
      },
      "type": "object"
    },
    "InterconnectAttachmentGroupLogicalStructureRegionMetro": {
      "properties": {
        "facilities": {
          "items": {
            "$ref": "InterconnectAttachmentGroupLogicalStructureRegionMetroFacility"
          },
          "type": "array",
          "readOnly": true
        },
        "metro": {
          "readOnly": true,
          "description": "Output only. [Output Only] The name of the metro, as a three-letter lowercase\nstring like \"iad\". This is the first component of the location of an\nInterconnect.",
          "type": "string"
        }
      },
      "description": "[Output Only] The metros of Attachments in this group in this region.",
      "id": "InterconnectAttachmentGroupLogicalStructureRegionMetro",
      "type": "object"
    },
    "BfdStatusPacketCounts": {
      "type": "object",
      "id": "BfdStatusPacketCounts",
      "properties": {
        "numTx": {
          "type": "integer",
          "description": "Number of packets transmitted since the beginning of the current BFD\nsession.",
          "format": "uint32"
        },
        "numRx": {
          "format": "uint32",
          "type": "integer",
          "description": "Number of packets received since the beginning of the current BFD\nsession."
        },
        "numRxSuccessful": {
          "format": "uint32",
          "type": "integer",
          "description": "Number of packets received that were successfully processed since the\nbeginning of the current BFD session."
        },
        "numRxRejected": {
          "format": "uint32",
          "type": "integer",
          "description": "Number of packets received that were rejected because of errors since the\nbeginning of the current BFD session."
        }
      }
    },
    "GlobalVmExtensionPolicy": {
      "description": "Message describing GlobalVmExtensionPolicy object.",
      "id": "GlobalVmExtensionPolicy",
      "type": "object",
      "properties": {
        "updateTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Update timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "rolloutOperation": {
          "description": "Required. The rollout strategy and status.",
          "$ref": "GlobalVmExtensionPolicyRolloutOperation"
        },
        "selfLinkWithId": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash."
        },
        "instanceSelectors": {
          "type": "array",
          "items": {
            "$ref": "GlobalVmExtensionPolicyInstanceSelector"
          },
          "description": "Optional. Selector to target VMs for a policy.\nThere is a logical \"AND\" between instance_selectors."
        },
        "priority": {
          "type": "integer",
          "description": "Optional. Used to resolve conflicts when multiple policies are active for the same\nextension. Defaults to 0.\n\nLarger the number, higher the priority. When the priority is the same,\nthe policy with the newer create time has higher priority.",
          "format": "int32"
        },
        "scopedResourceStatus": {
          "readOnly": true,
          "enumDescriptions": [
            "The zonal policies are being deleted.",
            "Default value. This value is unused."
          ],
          "type": "string",
          "enum": [
            "SCOPED_RESOURCE_STATUS_DELETING",
            "SCOPED_RESOURCE_STATUS_UNSPECIFIED"
          ],
          "description": "Output only. [Output Only] The scoped resource status. It's only for tracking the\npurging status of the policy."
        },
        "id": {
          "readOnly": true,
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "format": "uint64"
        },
        "extensionPolicies": {
          "type": "object",
          "description": "Required. Map from extension (eg: \"cloudops\") to its policy configuration.\nThe key is the name of the extension.",
          "additionalProperties": {
            "$ref": "GlobalVmExtensionPolicyExtensionPolicy"
          }
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "kind": {
          "default": "compute#globalVmExtensionPolicy",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#globalVmExtensionPolicy for globalVmExtensionPolicies."
        }
      }
    },
    "TargetHttpsProxiesScopedList": {
      "id": "TargetHttpsProxiesScopedList",
      "type": "object",
      "properties": {
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          },
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty."
        },
        "targetHttpsProxies": {
          "items": {
            "$ref": "TargetHttpsProxy"
          },
          "type": "array",
          "description": "A list of TargetHttpsProxies contained in this scope."
        }
      }
    },
    "AutoscalingPolicy": {
      "description": "Cloud Autoscaler policy.",
      "properties": {
        "customMetricUtilizations": {
          "items": {
            "$ref": "AutoscalingPolicyCustomMetricUtilization"
          },
          "description": "Configuration parameters of autoscaling based on a custom metric.",
          "type": "array"
        },
        "minNumReplicas": {
          "type": "integer",
          "format": "int32",
          "description": "The minimum number of replicas that the autoscaler can scale in to.\nThis cannot be less than 0. If not provided, autoscaler chooses a\ndefault value depending on maximum number of instances allowed."
        },
        "cpuUtilization": {
          "description": "Defines the CPU utilization policy that allows the autoscaler to scale\nbased on the average CPU utilization of a managed instance group.",
          "$ref": "AutoscalingPolicyCpuUtilization"
        },
        "coolDownPeriodSec": {
          "description": "The number of seconds that your application takes to initialize on a VM\ninstance. This is referred to as the\n[initialization period](/compute/docs/autoscaler#cool_down_period).\nSpecifying an accurate initialization period improves\nautoscaler decisions. For example, when scaling out, the autoscaler ignores\ndata from VMs that are still initializing because those VMs might not yet\nrepresent normal usage of your application. The default initialization\nperiod is 60 seconds.\n\nInitialization periods might vary because of numerous\nfactors. We recommend that you test how long your application takes to\ninitialize. To do this, create a VM and time your application's startup\nprocess.",
          "format": "int32",
          "type": "integer"
        },
        "mode": {
          "description": "Defines the operating mode for this policy.\nThe following modes are available:\n   \n   - OFF: Disables the autoscaler but maintains its\n   configuration.\n   - ONLY_SCALE_OUT: Restricts the autoscaler to add\n   VM instances only.\n   - ON: Enables all autoscaler activities according to its\n   policy.\n\n\nFor more information, see \n\"Turning off or restricting an autoscaler\"",
          "enumDescriptions": [
            "Do not automatically scale the MIG in or out.\nThe recommended_size field contains the size of MIG that would be set if\nthe actuation mode was enabled.",
            "Automatically scale the MIG in and out according to the policy.",
            "Automatically create VMs according to the policy, but do not scale\nthe MIG in.",
            "Automatically create VMs according to the policy, but do not scale\nthe MIG in.\nIt's recommended to use ONLY_SCALE_OUT instead of ONLY_UP."
          ],
          "enum": [
            "OFF",
            "ON",
            "ONLY_SCALE_OUT",
            "ONLY_UP"
          ],
          "type": "string"
        },
        "maxNumReplicas": {
          "format": "int32",
          "description": "The maximum number of instances that the autoscaler can scale out to. This\nis required when creating or updating an autoscaler. The maximum number\nof replicas must not be lower than minimal number of replicas.",
          "type": "integer"
        },
        "stabilizationPeriodSec": {
          "type": "integer",
          "description": "The number of seconds that autoscaler waits for load stabilization before\nmaking scale-in decisions. This is referred to as the\n[stabilization period](/compute/docs/autoscaler#stabilization_period).\nThis might appear as a delay in scaling in but it is an important mechanism\nfor your application to not have fluctuating size due to short term load\nfluctuations.\n\nThe default stabilization period is 600 seconds.",
          "format": "int32"
        },
        "scaleInControl": {
          "$ref": "AutoscalingPolicyScaleInControl"
        },
        "scalingSchedules": {
          "type": "object",
          "additionalProperties": {
            "$ref": "AutoscalingPolicyScalingSchedule"
          },
          "description": "Scaling schedules defined for an autoscaler. Multiple schedules\ncan be set on an autoscaler, and they can overlap. During overlapping\nperiods the greatest min_required_replicas of all scaling schedules is\napplied. Up to 128 scaling schedules are allowed."
        },
        "loadBalancingUtilization": {
          "$ref": "AutoscalingPolicyLoadBalancingUtilization",
          "description": "Configuration parameters of autoscaling based on load balancer."
        }
      },
      "type": "object",
      "id": "AutoscalingPolicy"
    },
    "InterconnectAttachmentAggregatedList": {
      "type": "object",
      "id": "InterconnectAttachmentAggregatedList",
      "properties": {
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectAttachmentAggregatedList for aggregated\nlists of interconnect attachments.",
          "default": "compute#interconnectAttachmentAggregatedList",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            }
          },
          "type": "object"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "items": {
          "description": "A list of InterconnectAttachmentsScopedList resources.",
          "additionalProperties": {
            "$ref": "InterconnectAttachmentsScopedList",
            "description": "Name of the scope containing this set of interconnect attachments."
          },
          "type": "object"
        }
      }
    },
    "ForwardingRule": {
      "properties": {
        "labels": {
          "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#forwardingRule for forwarding rule resources.",
          "default": "compute#forwardingRule",
          "type": "string",
          "readOnly": true
        },
        "isMirroringCollector": {
          "description": "Indicates whether or not this load balancer can be used as a collector for\npacket mirroring. To prevent mirroring loops, instances behind this\nload balancer will not have their traffic mirrored even if aPacketMirroring rule applies to them.\nThis can only be set to true for load balancers that have theirloadBalancingScheme set to INTERNAL.",
          "type": "boolean"
        },
        "ports": {
          "type": "array",
          "description": "The ports, portRange, and allPorts\nfields are mutually exclusive. Only packets addressed to ports in the\nspecified range will be forwarded to the backends configured with this\nforwarding rule.\n\nThe ports field has the following limitations:\n   \n   - It requires that the forwarding rule IPProtocol be TCP,\n   UDP, or SCTP, and\n   - It's applicable only to the following products: internal passthrough\n   Network Load Balancers, backend service-based external passthrough Network\n   Load Balancers, and internal protocol forwarding.\n   - You can specify a list of up to five ports by number, separated by\n   commas. The ports can be contiguous or discontiguous.\n\n\n\nFor external forwarding rules, two or more forwarding rules cannot use the\nsame [IPAddress, IPProtocol] pair (specified inIPAddress, IPAddresses, IPProtocol\nfields) if they share at least one port number.\n\nFor internal forwarding rules within the same VPC network, two or more\nforwarding rules cannot use the same [IPAddress, IPProtocol]\npair if they share at least one port number.\n\n@pattern: \\\\d+(?:-\\\\d+)?",
          "items": {
            "type": "string"
          }
        },
        "externalManagedBackendBucketMigrationTestingPercentage": {
          "format": "float",
          "description": "Determines the fraction of requests to backend buckets that should be\nprocessed by the global external Application Load Balancer.\n\nThe value of this field must be in the range [0, 100].\n\nThis value can only be set if the loadBalancingScheme in the BackendService\nis set to EXTERNAL (when using the classic Application Load Balancer) and\nthe migration state is TEST_BY_PERCENTAGE.",
          "type": "number"
        },
        "network": {
          "description": "This field is not used for global external load balancing.\n\nFor internal passthrough Network Load Balancers, this field identifies the\nnetwork that the load balanced IP should belong to for this forwarding\nrule.\nIf the subnetwork is specified, the network of the subnetwork will be used.\nIf neither subnetwork nor this field is specified, the default network will\nbe used.\n\nFor Private Service Connect forwarding rules that forward traffic to Google\nAPIs, a network must be provided.",
          "type": "string"
        },
        "noAutomateDnsZone": {
          "description": "This is used in PSC consumer ForwardingRule to control whether it should\ntry to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use\nthis field. Once set, this field is not mutable.",
          "type": "boolean"
        },
        "allPorts": {
          "description": "The ports, portRange, and allPorts\nfields are mutually exclusive. Only packets addressed to ports in the\nspecified range will be forwarded to the backends configured with this\nforwarding rule.\n\nThe allPorts field has the following limitations:\n   \n   - It requires that the forwarding rule IPProtocol be TCP,\n   UDP, SCTP, or L3_DEFAULT.\n   - It's applicable only to the following products: internal passthrough\n   Network Load Balancers, backend service-based external passthrough Network\n   Load Balancers, and internal and external protocol forwarding.\n   - Set this field to true to allow packets addressed to any port or\n   packets lacking destination port information (for example, UDP fragments\n   after the first fragment) to be forwarded to the backends configured with\n   this forwarding rule. The L3_DEFAULT protocol requiresallPorts be set to true.",
          "type": "boolean"
        },
        "loadBalancingScheme": {
          "type": "string",
          "enum": [
            "EXTERNAL",
            "EXTERNAL_MANAGED",
            "INTERNAL",
            "INTERNAL_MANAGED",
            "INTERNAL_SELF_MANAGED",
            "INVALID"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "description": "Specifies the forwarding rule type.\n\nFor more information, refer to \nForwarding rule product and scheme table."
        },
        "baseForwardingRule": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The URL for the corresponding base forwarding rule. By base\nforwarding rule, we mean the forwarding rule that has the same IP address,\nprotocol, and port settings with the current forwarding rule, but without\nsourceIPRanges specified.\nAlways empty if the current forwarding rule does not have sourceIPRanges\nspecified."
        },
        "fingerprint": {
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a ForwardingRule. Include the fingerprint in patch request to\nensure that you do not overwrite changes that were applied from another\nconcurrent request.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a ForwardingRule.",
          "format": "byte",
          "type": "string"
        },
        "ipVersion": {
          "description": "The IP Version that will be used by this forwarding rule.  Valid options\nare IPV4 or IPV6.",
          "type": "string",
          "enum": [
            "IPV4",
            "IPV6",
            "UNSPECIFIED_VERSION"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ]
        },
        "allowPscGlobalAccess": {
          "type": "boolean",
          "description": "This is used in PSC consumer ForwardingRule to control whether the PSC\nendpoint can be accessed from another region."
        },
        "target": {
          "type": "string",
          "description": "The URL of the target resource to receive the matched traffic.  For\nregional forwarding rules, this target must be in the same region as the\nforwarding rule. For global forwarding rules, this target must be a global\nload balancing resource.\n\nThe forwarded traffic must be of a type appropriate to the target object.\n   \n   \n     -  For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).\n     -  For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:\n       \n      \n            -  vpc-sc -  APIs that support VPC Service Controls. \n            -  all-apis - All supported Google APIs. \n          \n     \n     -  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment. \n\n\n\nThe following load balancers cannot set the target field (they should set the backendService field instead):\n   \n   - Internal passthrough Network Load Balancers\n   - Backend service-based regional external passthrough Network Load\n   Balancers\n   - Global external passthrough Network Load Balancers"
        },
        "metadataFilters": {
          "type": "array",
          "items": {
            "$ref": "MetadataFilter"
          },
          "description": "Opaque filter criteria used by load balancer to restrict routing\nconfiguration to a limited set of xDS\ncompliant clients. In their xDS requests to load balancer, xDS clients\npresent node\nmetadata. When there is a match, the relevant configuration\nis made available to those proxies. Otherwise, all the resources (e.g.TargetHttpProxy, UrlMap)\nreferenced by the ForwardingRule are not visible to\nthose proxies.\n\nFor each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least one of thefilterLabels must match the corresponding label provided in\nthe metadata. If its filterMatchCriteria is set to\nMATCH_ALL, then all of its filterLabels must match with\ncorresponding labels provided in the metadata. If multiplemetadataFilters are specified, all of them need to be satisfied\nin order to be considered a match.\n\nmetadataFilters specified here will be applifed before\nthose specified in the UrlMap that thisForwardingRule references.\n\nmetadataFilters only applies to Loadbalancers that have\ntheir loadBalancingScheme set toINTERNAL_SELF_MANAGED."
        },
        "ipCollection": {
          "type": "string",
          "description": "Resource reference of a PublicDelegatedPrefix. The PDP must\nbe a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.\n\nUse one of the following formats to specify a sub-PDP when creating an IPv6\nNetLB forwarding rule using BYOIP:\nFull resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name\nPartial URL, as in:\n   \n   - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name\n   - regions/region/publicDelegatedPrefixes/sub-pdp-name"
        },
        "serviceName": {
          "description": "[Output Only]\nThe internal fully qualified service name for this forwarding rule.\n\nThis field is only used for internal load balancing.",
          "type": "string"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.\n\nFor Private Service Connect forwarding rules that forward traffic to Google\nAPIs, the forwarding rule name must be a 1-20 characters string with\nlowercase letters and numbers and must start with a letter.\n\nFor global external Passthrough Network Load Balancer forwarding rules, the\nforwarding rule name must be 1-43 characters long. For each global external\nPassthrough Network Load Balancer forwarding rule (a parent forwarding\nrule) that you create, Google Cloud generates two output-only child\nforwarding rules that are named by concatenating the parent forwarding rule\nname with the `-ag0` and `-ag1` suffixes, respectively. Refer to theavailabilityGroup field for further details."
        },
        "subnetwork": {
          "type": "string",
          "description": "This field identifies the subnetwork that the load balanced IP should\nbelong to for this forwarding rule, used with internal load balancers and\nexternal passthrough Network Load Balancers with IPv6.\n\nIf the network specified is in auto subnet mode, this field is optional.\nHowever, a subnetwork must be specified if the network is in custom subnet\nmode or when creating external forwarding rule with IPv6."
        },
        "networkTier": {
          "enum": [
            "FIXED_STANDARD",
            "PREMIUM",
            "STANDARD",
            "STANDARD_OVERRIDES_FIXED_STANDARD"
          ],
          "description": "This signifies the networking tier used for configuring\nthis load balancer and can only take the following values:PREMIUM, STANDARD.\n\nFor regional ForwardingRule, the valid values are PREMIUM andSTANDARD. For GlobalForwardingRule, the valid value isPREMIUM.\n\nIf this field is not specified, it is assumed to be PREMIUM.\nIf IPAddress is specified, this value must be equal to the\nnetworkTier of the Address.",
          "enumDescriptions": [
            "Public internet quality with fixed bandwidth.",
            "High quality, Google-grade network tier, support for all networking\nproducts.",
            "Public internet quality, only limited support for other networking\nproducts.",
            "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured."
          ],
          "type": "string"
        },
        "allowGlobalAccess": {
          "description": "If set to true, clients can access the internal passthrough Network Load\nBalancers, the regional internal Application Load Balancer, and the\nregional internal proxy Network Load Balancer from all regions.\nIf false, only allows access from the local region the load balancer is\nlocated at. Note that for INTERNAL_MANAGED forwarding rules, this field\ncannot be changed after the forwarding rule is created.",
          "type": "boolean"
        },
        "sourceIpRanges": {
          "type": "array",
          "description": "If not empty, this forwarding rule will only forward the traffic when the\nsource IP address matches one of the IP addresses or CIDR ranges set here.\nNote that a forwarding rule can only have up to 64 source IP ranges, and\nthis field can only be used with a regional forwarding rule whose scheme isEXTERNAL.\nEach source_ip_range entry should be either an IP address (for\nexample, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string",
          "format": "uint64"
        },
        "backendService": {
          "description": "Identifies the backend service to which the forwarding rule sends traffic.\n\nIt is a required field for the following load balancers:\n   \n   - Internal passthrough Network Load Balancers\n   - Backend service-based regional external passthrough Network Load\n   Balancers\n   - Global external passthrough Network Load Balancers\n\n\n\nIt cannot be set by other load balancer types and protocol forwarding\nrules.",
          "type": "string"
        },
        "IPProtocol": {
          "enum": [
            "AH",
            "ESP",
            "ICMP",
            "L3_DEFAULT",
            "SCTP",
            "TCP",
            "UDP"
          ],
          "description": "The IP protocol to which this rule applies.\n\nFor protocol forwarding, valid\noptions are TCP, UDP, ESP,AH, SCTP, ICMP andL3_DEFAULT.\n\nThe valid IP protocols are different for different load balancing products\nas described in [Load balancing\nfeatures](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ]
        },
        "pscConnectionId": {
          "format": "uint64",
          "type": "string",
          "description": "[Output Only] The PSC connection id of the PSC forwarding rule."
        },
        "selfLinkWithId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id."
        },
        "externalManagedBackendBucketMigrationState": {
          "type": "string",
          "description": "Specifies the canary migration state for the backend buckets attached to\nthis forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and\nTEST_ALL_TRAFFIC.\n\nTo begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be\nchanged to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before\nthe loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets\nattached to this forwarding rule by percentage using\nexternalManagedBackendBucketMigrationTestingPercentage.\n\nRolling back a migration requires the states to be set in reverse order. So\nchanging the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to\nbe set to TEST_ALL_TRAFFIC at the same time. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate some traffic back to\nEXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "PREPARE",
            "TEST_ALL_TRAFFIC",
            "TEST_BY_PERCENTAGE"
          ]
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "serviceDirectoryRegistrations": {
          "type": "array",
          "description": "Service Directory resources to register this forwarding rule with.\nCurrently, only supports a single Service Directory resource.",
          "items": {
            "$ref": "ForwardingRuleServiceDirectoryRegistration"
          }
        },
        "serviceLabel": {
          "description": "An optional prefix to the service name for this forwarding rule.\nIf specified, the prefix is the first label of the fully qualified service\nname.\n\nThe label must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the label must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.\n\nThis field is only used for internal load balancing.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "IPAddress": {
          "description": "IP address for which this forwarding rule accepts traffic. When a client\nsends traffic to this IP address, the forwarding rule directs the traffic\nto the referenced target or backendService.\nWhile creating a forwarding rule, specifying an IPAddress is\nrequired under the following circumstances:\n\n   \n   - When the target is set to targetGrpcProxy andvalidateForProxyless is set to true, theIPAddress should be set to 0.0.0.0.\n   - When the target is a Private Service Connect Google APIs\n   bundle, you must specify an IPAddress.\n\n\nOtherwise, you can optionally specify an IP address that references an\nexisting static (reserved) IP address resource. When omitted, Google Cloud\nassigns an ephemeral IP address.\n\nUse one of the following formats to specify an IP address while creating a\nforwarding rule:\n\n* IP address number, as in `100.1.2.3`\n* IPv6 address range, as in `2600:1234::/96`\n* Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name\n* Partial URL or by name, as in:\n   \n   - projects/project_id/regions/region/addresses/address-name\n   - regions/region/addresses/address-name\n   - global/addresses/address-name\n   - address-name\n\n\n\nThe IP address can only be set at creation. Once set, it cannot be updated.\n\nThe forwarding rule's target or backendService,\nand in most cases, also the loadBalancingScheme, determine the\ntype of IP address that you can use. For detailed information, see\n[IP address\nspecifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).\n\nWhen reading an IPAddress, the API always returns the IP\naddress number.\n\nWhen creating a global external Passthrough Network Load Balancer\nforwarding rule (a parent forwarding rule), you must use theIPAddresses field, but the Google Cloud generated child\nforwarding rules set the IPAddress field instead. Refer to theavailabilityGroup field for further details.",
          "type": "string"
        },
        "pscConnectionStatus": {
          "enumDescriptions": [
            "The connection has been accepted by the producer.",
            "The connection has been closed by the producer and will not serve traffic\ngoing forward.",
            "The connection has been accepted by the producer, but the producer needs\nto take further action before the forwarding rule can serve traffic.",
            "The connection is pending acceptance by the producer.",
            "The connection has been rejected by the producer.",
            ""
          ],
          "type": "string",
          "enum": [
            "ACCEPTED",
            "CLOSED",
            "NEEDS_ATTENTION",
            "PENDING",
            "REJECTED",
            "STATUS_UNSPECIFIED"
          ],
          "readOnly": true
        },
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "labelFingerprint": {
          "type": "string",
          "format": "byte",
          "description": "A fingerprint for the labels being applied to this resource, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a ForwardingRule."
        },
        "attachedExtensions": {
          "items": {
            "$ref": "ForwardingRuleAttachedExtension"
          },
          "type": "array",
          "description": "Output only. [Output Only]. The extensions that are attached to this ForwardingRule.",
          "readOnly": true
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the regional forwarding rule resides.\nThis field is not applicable to global forwarding rules.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body."
        },
        "portRange": {
          "type": "string",
          "description": "The ports, portRange, and allPorts\nfields are mutually exclusive. Only packets addressed to ports in the\nspecified range will be forwarded to the backends configured with this\nforwarding rule.\n\nThe portRange field has the following limitations:\n   \n   - It requires that the forwarding rule IPProtocol be TCP,\n   UDP, or SCTP, and\n   - It's applicable only to the following products: external passthrough\n   Network Load Balancers, internal and external proxy Network Load Balancers,\n   internal and external Application Load Balancers, external protocol\n   forwarding, and Classic VPN.\n   - Some products have restrictions on what ports can be used. See \n   port specifications for details.\n\n\n\nFor external forwarding rules, two or more forwarding rules cannot use the\nsame [IPAddress, IPProtocol] pair (specified inIPAddress, IPAddresses, IPProtocol\nfields) if they have overlapping portRanges.\n\nFor internal forwarding rules within the same VPC network, two or more\nforwarding rules cannot use the same [IPAddress, IPProtocol]\npair, and cannot have overlapping portRanges.\n\n@pattern: \\\\d+(?:-\\\\d+)?"
        }
      },
      "id": "ForwardingRule",
      "description": "Represents a Forwarding Rule resource.\n\nForwarding rule resources in Google Cloud can be either regional or global in\nscope:\n\n* [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)\n* [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)\n\nA forwarding rule and its corresponding IP address represent the frontend\nconfiguration of a Google Cloud load balancer.\nForwarding rules can also reference target instances and Cloud VPN Classic\ngateways (targetVpnGateway).\n\nFor more information, read\nForwarding rule concepts and\nUsing protocol forwarding.",
      "type": "object"
    },
    "InterconnectMacsecPreSharedKey": {
      "description": "Describes a pre-shared key used to setup MACsec in static connectivity\nassociation key (CAK) mode.",
      "id": "InterconnectMacsecPreSharedKey",
      "properties": {
        "name": {
          "type": "string",
          "description": "Required. A name for this pre-shared key.\nThe name must be 1-63 characters long, and comply withRFC1035. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a\nlowercase letter, and all following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be\na dash."
        },
        "startTime": {
          "type": "string",
          "description": "A RFC3339 timestamp on or after which the key is\nvalid. startTime can be in the future. If the keychain has a single\nkey, startTime can be omitted. If the keychain has multiple keys,\nstartTime is mandatory for each key. The start times of keys must be in\nincreasing order. The start times of two consecutive keys must be\nat least 6 hours apart."
        }
      },
      "type": "object"
    },
    "GuestAttributesValue": {
      "id": "GuestAttributesValue",
      "type": "object",
      "description": "Array of guest attribute namespace/key/value tuples.",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "GuestAttributesEntry"
          }
        }
      }
    },
    "BackendServiceHAPolicy": {
      "id": "BackendServiceHAPolicy",
      "type": "object",
      "properties": {
        "fastIPMove": {
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string",
          "enum": [
            "DISABLED",
            "GARP_RA"
          ],
          "description": "Specifies whether fast IP move is enabled, and if so, the mechanism to\nachieve it.\n\nSupported values are:\n   \n   - DISABLED: Fast IP Move is disabled. You can only use the\n   haPolicy.leader API to update the leader.\n   - \u003eGARP_RA: Provides a method to very quickly define a new network\n   endpoint as the leader. This method is faster than updating the leader\n   using the haPolicy.leader API. Fast IP move works as follows: The VM\n   hosting the network endpoint that should become the new leader sends\n   either a Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router\n   Advertisement(RA) packet (IPv6).  Google Cloud immediately but\n   temporarily associates the forwarding rule IP address with that VM, and\n   both new and in-flight packets are quickly delivered to that VM.\n\n\n\nNote the important properties of the Fast IP Move functionality:\n   \n   - The GARP/RA-initiated re-routing stays active for approximately 20\n   minutes. After triggering fast failover, you must also\n   appropriately set the haPolicy.leader.\n   -  The new leader instance should continue to send GARP/RA packets\n   periodically every 10 seconds until at least 10 minutes after updating\n   the haPolicy.leader (but stop immediately if it is no longer the leader).\n   - After triggering a fast failover, we recommend that you wait at least\n   3 seconds before sending another GARP/RA packet from a different VM\n   instance to avoid race conditions.\n   - Don't send GARP/RA packets from different VM\n   instances at the same time. If multiple instances continue to send\n   GARP/RA packets, traffic might be routed to different destinations in an\n   alternating order. This condition ceases when a single instance\n   issues a GARP/RA packet.\n   - The GARP/RA request always takes priority over the leader API.\n   Using the haPolicy.leader API to change the leader to a different\n   instance will have no effect until the GARP/RA request becomes\n   inactive.\n   - The GARP/RA packets should follow the GARP/RA\n   Packet Specifications..\n   -  When multiple forwarding rules refer to a regional backend service,\n   you need only send a GARP or RA packet for a single forwarding rule\n   virtual IP. The virtual IPs for all forwarding rules targeting the same\n   backend service will also be moved to the sender of the GARP or RA\n   packet. \n\n\n\nThe following are the Fast IP Move limitations (that is, when fastIPMove\nis not DISABLED):\n   \n   - Multiple forwarding rules cannot use the same IP address if one of\n   them refers to a regional backend service with fastIPMove.\n   - The regional backend service must set the network field, and all\n   NEGs must belong to that network. However, individual\n   NEGs can belong to different subnetworks of that network. \n   - The maximum number of network endpoints across all backends of a\n   backend service with fastIPMove is 32.\n   - The maximum number of backend services with fastIPMove that can have\n   the same network endpoint attached to one of its backends is 64.\n   - The maximum number of backend services with fastIPMove in a VPC in a\n   region is 64.\n   - The network endpoints that are attached to a backend of a backend\n   service with fastIPMove cannot resolve to Gen3+ machines for IPv6.\n   - Traffic directed to the leader by a static route next hop will not be\n   redirected to a new leader by fast failover. Such traffic will only be\n   redirected once an haPolicy.leader update has taken effect. Only traffic\n   to the forwarding rule's virtual IP will be redirected to a new leader by\n   fast failover.\n\n\nhaPolicy.fastIPMove can be set only at backend service creation time.\nOnce set, it cannot be updated.\n\nBy default, fastIpMove is set to DISABLED."
        },
        "leader": {
          "$ref": "BackendServiceHAPolicyLeader",
          "description": "Selects one of the network endpoints attached to the backend NEGs of\nthis service as the active endpoint (the leader) that receives all\ntraffic.\n\nWhen the leader changes, there is no connection draining to persist\nexisting connections on the old leader.\n\nYou are responsible for selecting a suitable endpoint as the\nleader. For example, preferring a healthy endpoint over unhealthy ones.\nNote that this service does not track backend endpoint health, and\nselects the configured leader unconditionally."
        }
      }
    },
    "InterconnectDiagnosticsLinkLACPStatus": {
      "properties": {
        "neighborSystemId": {
          "description": "System ID of the port on the neighbor's side of the LACP exchange.",
          "type": "string"
        },
        "state": {
          "type": "string",
          "enumDescriptions": [
            "The link is configured and active within the bundle.",
            "The link is not configured within the bundle, this means the rest of\nthe object should be empty."
          ],
          "description": "The state of a LACP link, which can take one of the following values:\n   \n   - ACTIVE: The link is configured and active within the bundle.\n   - DETACHED: The link is not configured within the bundle. This means\n   that the rest of the object should be empty.",
          "enum": [
            "ACTIVE",
            "DETACHED"
          ]
        },
        "googleSystemId": {
          "type": "string",
          "description": "System ID of the port on Google's side of the LACP exchange."
        }
      },
      "id": "InterconnectDiagnosticsLinkLACPStatus",
      "type": "object"
    },
    "GlobalVmExtensionPolicyInstanceSelector": {
      "type": "object",
      "description": "Selector to target VMs for a zone VM extension policy.",
      "id": "GlobalVmExtensionPolicyInstanceSelector",
      "properties": {
        "labelSelector": {
          "$ref": "GlobalVmExtensionPolicyLabelSelector",
          "description": "Optional. Labels within the LabelSelector are OR'd."
        }
      }
    },
    "RouteAsPath": {
      "id": "RouteAsPath",
      "properties": {
        "asLists": {
          "items": {
            "type": "integer",
            "format": "uint32"
          },
          "type": "array",
          "description": "[Output Only] The AS numbers of the AS Path."
        },
        "pathSegmentType": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "description": "[Output Only] The type of the AS Path, which can be one of the following\nvalues: \n- 'AS_SET': unordered set of autonomous systems that the route\nin has traversed  \n- 'AS_SEQUENCE': ordered set of autonomous\nsystems that the route has traversed  \n- 'AS_CONFED_SEQUENCE':\nordered set of Member Autonomous Systems in the local confederation that\nthe route has traversed  \n- 'AS_CONFED_SET': unordered set of\nMember Autonomous Systems in the local confederation that the route has\ntraversed",
          "enum": [
            "AS_CONFED_SEQUENCE",
            "AS_CONFED_SET",
            "AS_SEQUENCE",
            "AS_SET"
          ]
        }
      },
      "type": "object"
    },
    "BulkInsertInstanceResource": {
      "id": "BulkInsertInstanceResource",
      "description": "A transient resource used in compute.instances.bulkInsert and\ncompute.regionInstances.bulkInsert . This resource is not persisted\nanywhere, it is used only for processing the requests.",
      "properties": {
        "sourceInstanceTemplate": {
          "description": "Specifies the instance template from which to create instances. You may\ncombine sourceInstanceTemplate withinstanceProperties to override specific values from an\nexisting instance template. Bulk API follows the semantics of JSON Merge\nPatch described by RFC\n7396.\n\nIt can be a full or partial URL. For example, the following are\nall valid URLs to an instance template: \n   \n   \n      - https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate\n      - projects/project/global/instanceTemplates/instanceTemplate\n      - global/instanceTemplates/instanceTemplate\n\n\n\nThis field is optional.",
          "type": "string"
        },
        "count": {
          "description": "The maximum number of instances to create.",
          "type": "string",
          "format": "int64"
        },
        "perInstanceProperties": {
          "additionalProperties": {
            "$ref": "BulkInsertInstanceResourcePerInstanceProperties"
          },
          "type": "object",
          "description": "Per-instance properties to be set on individual instances.\nKeys of this map specify requested instance names.\nCan be empty if name_pattern is used."
        },
        "namePattern": {
          "description": "The string pattern used for the names of the VMs.\nEither name_pattern or per_instance_properties\nmust be set. The pattern must contain one continuous sequence of\nplaceholder hash characters (#) with each character corresponding to one\ndigit of the generated instance name. Example: a name_pattern\nof inst-#### generates instance names such asinst-0001 and inst-0002. If existing instances\nin the same project and zone have names that match the name pattern\nthen the generated instance numbers start after the biggest\nexisting number. For example, if there exists an instance with nameinst-0050, then instance names generated using the patterninst-#### begin with inst-0051. The name pattern\nplaceholder #...# can contain up to 18 characters.",
          "type": "string"
        },
        "locationPolicy": {
          "description": "Policy for choosing target zone. For more information, seeCreate VMs in\nbulk.",
          "$ref": "LocationPolicy"
        },
        "minCount": {
          "format": "int64",
          "description": "The minimum number of instances to create. If no min_count is\nspecified then count is used as the default value. Ifmin_count instances cannot be created, then no instances will\nbe created and instances already created will be deleted.",
          "type": "string"
        },
        "instanceProperties": {
          "$ref": "InstanceProperties",
          "description": "The instance properties defining the VM instances to be created. Required\nif sourceInstanceTemplate is not provided."
        },
        "instanceFlexibilityPolicy": {
          "description": "A flexible specification of machine type of instances to create.",
          "$ref": "InstanceFlexibilityPolicy"
        }
      },
      "type": "object"
    },
    "GRPCHealthCheck": {
      "type": "object",
      "properties": {
        "portSpecification": {
          "type": "string",
          "enum": [
            "USE_FIXED_PORT",
            "USE_NAMED_PORT",
            "USE_SERVING_PORT"
          ],
          "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools.  Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group.  For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.",
          "enumDescriptions": [
            "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.",
            "Not supported.",
            "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports."
          ]
        },
        "port": {
          "description": "The TCP port number to which the health check prober sends packets. Valid\nvalues are 1 through 65535.",
          "format": "int32",
          "type": "integer"
        },
        "portName": {
          "description": "Not supported.",
          "type": "string"
        },
        "grpcServiceName": {
          "description": "The gRPC service name for the health check. This field is optional. The\nvalue of grpc_service_name has the following meanings by convention: \n\n- Empty service_name means the overall status of all services at the\nbackend. \n\n- Non-empty service_name means the health of that gRPC service, as defined\nby the owner of the service. \n\nThe grpc_service_name can only be ASCII.",
          "type": "string"
        }
      },
      "id": "GRPCHealthCheck"
    },
    "SecurityPolicyRuleMatcher": {
      "properties": {
        "expr": {
          "$ref": "Expr",
          "description": "User defined CEVAL expression.\nA CEVAL expression is used to specify match criteria such as origin.ip,\nsource.region_code and contents in the request header.\nExpressions containing `evaluateThreatIntelligence` require a Cloud\nArmor Enterprise subscription and are not supported in Edge Policies\nnor in Regional Policies. Expressions containing\n`evaluatePreconfiguredExpr('sourceiplist-*')` require a Cloud Armor\nEnterprise subscription and are only supported in Global Security\nPolicies."
        },
        "versionedExpr": {
          "description": "Preconfigured versioned expression.\nIf this field is specified, config must also be specified.\nAvailable preconfigured expressions along with their requirements are:\nSRC_IPS_V1 - must specify the corresponding src_ip_range field in\nconfig.",
          "enum": [
            "SRC_IPS_V1"
          ],
          "enumDescriptions": [
            "Matches the source IP address of a request to the IP ranges supplied\nin config."
          ],
          "type": "string"
        },
        "exprOptions": {
          "description": "The configuration options available when specifying a user defined\nCEVAL expression (i.e., 'expr').",
          "$ref": "SecurityPolicyRuleMatcherExprOptions"
        },
        "config": {
          "description": "The configuration options available when specifying versioned_expr.\nThis field must be specified if versioned_expr is specified and cannot\nbe specified if versioned_expr is not specified.",
          "$ref": "SecurityPolicyRuleMatcherConfig"
        }
      },
      "description": "Represents a match condition that incoming traffic is evaluated against.\nExactly one field must be specified.",
      "id": "SecurityPolicyRuleMatcher",
      "type": "object"
    },
    "GetVersionOperationMetadata": {
      "type": "object",
      "id": "GetVersionOperationMetadata",
      "properties": {
        "inlineSbomInfo": {
          "$ref": "GetVersionOperationMetadataSbomInfo"
        }
      }
    },
    "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs": {
      "type": "object",
      "properties": {
        "specificSkuProperties": {
          "readOnly": true,
          "$ref": "FutureReservationSpecificSKUProperties",
          "description": "Output only. [Output Only] The previous instance related properties of the\nFuture Reservation."
        },
        "shareSettings": {
          "readOnly": true,
          "description": "Output only. [Output Only] The previous share settings of the Future Reservation.",
          "$ref": "ShareSettings"
        },
        "timeWindow": {
          "$ref": "FutureReservationTimeWindow",
          "description": "Output only. [Output Only] The previous time window of the Future Reservation.",
          "readOnly": true
        }
      },
      "description": "The properties of the last known good state for the Future Reservation.",
      "id": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs"
    },
    "GroupMaintenanceInfo": {
      "type": "object",
      "description": "Maintenance Info for ReservationBlocks.",
      "id": "GroupMaintenanceInfo",
      "properties": {
        "subblockInfraMaintenancePendingCount": {
          "format": "int32",
          "type": "integer",
          "description": "Describes number of subblock Infrastructure that has pending maintenance.\n Here, Subblock Infrastructure Maintenance pertains to upstream hardware\n contained in the Subblock that is necessary for a VM Family (e.g. NVLink\n Domains). Not all VM Families will support this field."
        },
        "subblockInfraMaintenanceOngoingCount": {
          "description": "Describes number of subblock Infrastructure that has ongoing maintenance.\nHere, Subblock Infrastructure Maintenance pertains to upstream hardware\ncontained in the Subblock that is necessary for a VM Family(e.g. NVLink\nDomains). Not all VM Families will support this field.",
          "format": "int32",
          "type": "integer"
        },
        "instanceMaintenanceOngoingCount": {
          "type": "integer",
          "format": "int32",
          "description": "Describes number of instances that have ongoing maintenance."
        },
        "schedulingType": {
          "enumDescriptions": [
            "Maintenance on all reserved instances in the reservation is synchronized.",
            "Unknown maintenance type.",
            "Maintenance is not synchronized for this reservation. Instead, each\ninstance has its own maintenance window."
          ],
          "type": "string",
          "enum": [
            "GROUPED",
            "GROUP_MAINTENANCE_TYPE_UNSPECIFIED",
            "INDEPENDENT"
          ],
          "description": "The type of maintenance for the reservation."
        },
        "maintenancePendingCount": {
          "format": "int32",
          "description": "Progress for ongoing maintenance for this group of VMs/hosts.\nDescribes number of hosts in the block that have pending maintenance.",
          "type": "integer"
        },
        "upcomingGroupMaintenance": {
          "$ref": "UpcomingMaintenance",
          "description": "Maintenance information on this group of VMs."
        },
        "maintenanceOngoingCount": {
          "description": "Progress for ongoing maintenance for this group of VMs/hosts.\nDescribes number of hosts in the block that have ongoing maintenance.",
          "format": "int32",
          "type": "integer"
        },
        "instanceMaintenancePendingCount": {
          "format": "int32",
          "description": "Describes number of instances that have pending maintenance.",
          "type": "integer"
        }
      }
    },
    "ExchangedPeeringRoute": {
      "type": "object",
      "id": "ExchangedPeeringRoute",
      "properties": {
        "priority": {
          "type": "integer",
          "format": "uint32",
          "description": "The priority of the peering route."
        },
        "type": {
          "enum": [
            "DYNAMIC_PEERING_ROUTE",
            "STATIC_PEERING_ROUTE",
            "SUBNET_PEERING_ROUTE"
          ],
          "description": "The type of the peering route.",
          "enumDescriptions": [
            "For routes exported from local network.",
            "The peering route.",
            "The peering route corresponding to subnetwork range."
          ],
          "type": "string"
        },
        "nextHopRegion": {
          "description": "The region of peering route next hop, only applies to dynamic routes.",
          "type": "string"
        },
        "imported": {
          "type": "boolean",
          "description": "True if the peering route has been imported from a peer. The actual import\nhappens if the field networkPeering.importCustomRoutes is true\nfor this network, and networkPeering.exportCustomRoutes is\ntrue for the peer network, and the import does not result in a route\nconflict."
        },
        "destRange": {
          "description": "The destination range of the route.",
          "type": "string"
        }
      }
    },
    "AddressList": {
      "type": "object",
      "id": "AddressList",
      "properties": {
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          }
        },
        "kind": {
          "default": "compute#addressList",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Always compute#addressList for\nlists of addresses."
        },
        "items": {
          "items": {
            "$ref": "Address"
          },
          "type": "array",
          "description": "A list of Address resources."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        }
      },
      "description": "Contains a list of addresses."
    },
    "CapacityHistoryRequest": {
      "properties": {
        "locationPolicy": {
          "$ref": "CapacityHistoryRequestLocationPolicy",
          "description": "Location policy for this request."
        },
        "instanceProperties": {
          "description": "Instance properties for this request.",
          "$ref": "CapacityHistoryRequestInstanceProperties"
        },
        "types": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Default value, unused.",
              "Preemption history.",
              "Price history."
            ],
            "enum": [
              "HISTORY_TYPE_UNSPECIFIED",
              "PREEMPTION",
              "PRICE"
            ],
            "type": "string"
          },
          "description": "List of history types to get capacity history for."
        }
      },
      "description": "A request to get the capacity history.",
      "id": "CapacityHistoryRequest",
      "type": "object"
    },
    "RegionDisksResizeRequest": {
      "properties": {
        "sizeGb": {
          "type": "string",
          "format": "int64",
          "description": "The new size of the regional persistent disk, which is specified in GB."
        }
      },
      "type": "object",
      "id": "RegionDisksResizeRequest"
    },
    "WireGroupTopologyEndpoint": {
      "properties": {
        "label": {
          "readOnly": true,
          "description": "Output only. Endpoint label from the wire group.",
          "type": "string"
        },
        "city": {
          "description": "Output only. The InterconnectLocation.city (metropolitan area designator) that all\ninterconnects are located in.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "WireGroupTopologyEndpoint",
      "type": "object",
      "description": "Topology details for a single wire group endpoint."
    },
    "AutoscalersScopedList": {
      "properties": {
        "autoscalers": {
          "type": "array",
          "items": {
            "$ref": "Autoscaler"
          },
          "description": "[Output Only] A list of autoscalers contained in this scope."
        },
        "warning": {
          "description": "[Output Only] Informational warning which replaces the list of autoscalers\nwhen the list is empty.",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            },
            "code": {
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "type": "object"
        }
      },
      "id": "AutoscalersScopedList",
      "type": "object"
    },
    "ResourceStatus": {
      "description": "Contains output only fields.\nUse this sub-message for actual values set on Instance attributes as compared\nto the value requested by the user (intent) in their instance CRUD calls.",
      "type": "object",
      "properties": {
        "physicalHostTopology": {
          "$ref": "ResourceStatusPhysicalHostTopology",
          "description": "Output only. [Output Only] A series of fields containing the global name of the Compute\nEngine cluster, as well as the ID of the block, sub-block, and host on\nwhich the running instance is located.",
          "readOnly": true
        },
        "shutdownDetails": {
          "$ref": "ResourceStatusShutdownDetails",
          "description": "Output only. [Output Only] Details about the instance stopping state.",
          "readOnly": true
        },
        "reservationConsumptionInfo": {
          "$ref": "ResourceStatusReservationConsumptionInfo",
          "readOnly": true,
          "description": "Output only. [Output Only] Reservation information that the instance is consuming from."
        },
        "physicalHost": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The precise location of your instance within the zone's data\ncenter, including the block, sub-block, and host. The field is formatted as\nfollows: blockId/subBlockId/hostId."
        },
        "effectiveInstanceMetadata": {
          "description": "Output only. [Output Only] Effective metadata is a field that consolidates project,\nzonal instance settings, and instance-level predefined metadata keys to\nprovide the overridden value for those metadata keys at the instance level.",
          "$ref": "ResourceStatusEffectiveInstanceMetadata",
          "readOnly": true
        },
        "upcomingMaintenance": {
          "readOnly": true,
          "$ref": "UpcomingMaintenance"
        },
        "scheduling": {
          "$ref": "ResourceStatusScheduling"
        }
      },
      "id": "ResourceStatus"
    },
    "RoutePolicy": {
      "id": "RoutePolicy",
      "properties": {
        "name": {
          "description": "Route Policy name, which must be a resource ID segment and unique\nwithin all the router's Route Policies. Name should conform to RFC1035.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "The Route Policy is an Export Policy.",
            "The Route Policy is an Import Policy."
          ],
          "enum": [
            "ROUTE_POLICY_TYPE_EXPORT",
            "ROUTE_POLICY_TYPE_IMPORT"
          ]
        },
        "description": {
          "description": "An optional description of route policy.",
          "type": "string"
        },
        "fingerprint": {
          "type": "string",
          "description": "A fingerprint for the Route Policy being applied to this Router, which is\nessentially a hash of the Route Policy used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes\nafter every request to modify or update Route Policy. You must always\nprovide an up-to-date fingerprint hash in order to update or change\nlabels.\n\nTo see the latest fingerprint, make a getRoutePolicy() request\nto retrieve a Route Policy.",
          "format": "byte"
        },
        "terms": {
          "description": "List of terms (the order in the list is not important, they are evaluated\nin order of priority). Order of policies is not retained and might change\nwhen getting policy later.",
          "type": "array",
          "items": {
            "$ref": "RoutePolicyPolicyTerm"
          }
        }
      },
      "type": "object"
    },
    "PeriodicPartialMaintenanceSchedule": {
      "properties": {
        "targetResource": {
          "description": "The target resource that the maintenance window is for.\nFor example, \"projects/my-project/zones/us-central1-a\".",
          "type": "string"
        },
        "subType": {
          "type": "string",
          "description": "The maintenance type in which the zone is during the given window.",
          "enumDescriptions": [
            "Default value.",
            "A dedicated window for customers to perform their own maintenance. This\noften runs concurrently with a DISRUPTIVE_UPGRADE.",
            "For disruptive updates, including host machine kernel or firmware\nupgrades.",
            "A post-maintenance window for customers to conduct final testing and\nperformance validation before resuming full business operations.",
            "For preliminary, non-disruptive tasks such as key rotations."
          ],
          "enum": [
            "MAINTENANCE_SUBTYPE_UNSPECIFIED",
            "MAINTENANCE_TYPE_CUSTOMER_MAINTENANCE",
            "MAINTENANCE_TYPE_DISRUPTIVE_UPGRADE",
            "MAINTENANCE_TYPE_STABLE",
            "MAINTENANCE_TYPE_TRANSITION"
          ]
        },
        "windowEndTime": {
          "description": "The end civil timestamp of the window (not inclusive).\nThis contains a time zone.",
          "$ref": "DateTime"
        },
        "type": {
          "enum": [
            "MAINTENANCE_TYPE_UNSPECIFIED",
            "PRIVATE_ZONE_MAINTENANCE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "The zone is in a private maintenance window."
          ]
        },
        "windowStartTime": {
          "$ref": "DateTime",
          "description": "The start civil timestamp of the window.\nThis contains a time zone."
        }
      },
      "id": "PeriodicPartialMaintenanceSchedule",
      "type": "object",
      "description": "The periodic partial maintenance schedule includes 52 weeks worth of\nmaintenance windows.\nLINT.IfChange(PeriodicPartialMaintenanceSchedule)"
    },
    "StoragePoolExapoolProvisionedCapacityGb": {
      "properties": {
        "readOptimized": {
          "description": "Size, in GiB, of provisioned read-optimized capacity for this Exapool",
          "format": "int64",
          "type": "string"
        },
        "writeOptimized": {
          "type": "string",
          "description": "Size, in GiB, of provisioned write-optimized capacity for this Exapool",
          "format": "int64"
        },
        "capacityOptimized": {
          "format": "int64",
          "description": "Size, in GiB, of provisioned capacity-optimized capacity for this Exapool",
          "type": "string"
        }
      },
      "description": "Exapool provisioned capacities for each SKU type",
      "id": "StoragePoolExapoolProvisionedCapacityGb",
      "type": "object"
    },
    "SecurityPolicyRecaptchaOptionsConfig": {
      "properties": {
        "redirectSiteKey": {
          "description": "An optional field to supply a reCAPTCHA site key to be used for all the\nrules using the redirect action with the type of GOOGLE_RECAPTCHA under\nthe security policy. The specified site key needs to be created from the\nreCAPTCHA API. The user is responsible for the validity of the specified\nsite key. If not specified, a Google-managed site key is used.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR.",
          "type": "string"
        }
      },
      "id": "SecurityPolicyRecaptchaOptionsConfig",
      "type": "object"
    },
    "BackendBucketCdnPolicy": {
      "description": "Message containing Cloud CDN configuration for a backend bucket.",
      "properties": {
        "bypassCacheOnRequestHeaders": {
          "type": "array",
          "items": {
            "$ref": "BackendBucketCdnPolicyBypassCacheOnRequestHeader"
          },
          "description": "Bypass the cache when the specified request headers are matched - e.g.\nPragma or Authorization headers. Up to 5 headers can be specified.\nThe cache is bypassed for all cdnPolicy.cacheMode settings."
        },
        "signedUrlCacheMaxAgeSec": {
          "format": "int64",
          "description": "Maximum number of seconds the response to a signed URL request will be\nconsidered fresh. After this time period, the response will be\nrevalidated before being served. Defaults to 1hr (3600s).  When serving\nresponses to signed URL requests, Cloud CDN will internally behave as\nthough all responses from this backend had a \"Cache-Control:\npublic, max-age=[TTL]\" header, regardless of any existing\nCache-Control header. The actual headers served in responses will not be\naltered.",
          "type": "string"
        },
        "clientTtl": {
          "format": "int32",
          "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is\nused to clamp the max-age (or Expires) value sent to the client.  With\nFORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the\nresponse max-age directive, along with a \"public\" directive.  For\ncacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age\nfrom the origin (if specified), or else sets the response max-age\ndirective to the lesser of the client_ttl and default_ttl, and also\nensures a \"public\" cache-control directive is present.\nIf a client TTL is not specified, a default value (1 hour) will be used.\nThe maximum allowed value is 31,622,400s (1 year).",
          "type": "integer"
        },
        "maxTtl": {
          "description": "Specifies the maximum allowed TTL for cached content served by this\norigin.\nCache directives that attempt to set a max-age or s-maxage higher than\nthis, or an Expires header more than maxTTL seconds in the future will\nbe capped at the value of maxTTL, as if it were the value of an\ns-maxage Cache-Control directive.\nHeaders sent to the client will not be modified.\nSetting a TTL of \"0\" means \"always revalidate\".\nThe maximum allowed value is 31,622,400s (1 year), noting that\ninfrequently accessed objects may be evicted from the cache before\nthe defined TTL.",
          "type": "integer",
          "format": "int32"
        },
        "signedUrlKeyNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "[Output Only] Names of the keys for signing request URLs."
        },
        "cacheMode": {
          "enum": [
            "CACHE_ALL_STATIC",
            "FORCE_CACHE_ALL",
            "INVALID_CACHE_MODE",
            "USE_ORIGIN_HEADERS"
          ],
          "description": "Specifies the cache setting for all responses from this backend.\nThe possible values are:\nUSE_ORIGIN_HEADERS Requires the origin to set valid caching\nheaders to cache content. Responses without these headers will not be\ncached at Google's edge, and will require a full trip to the origin on\nevery request, potentially impacting performance and increasing load on\nthe origin server.\nFORCE_CACHE_ALL Cache all content, ignoring any \"private\",\n\"no-store\" or \"no-cache\" directives in Cache-Control response headers.\nWarning: this may result in Cloud CDN caching private,\nper-user (user identifiable) content.\nCACHE_ALL_STATIC Automatically cache static content,\nincluding common image formats, media (video and audio), and web assets\n(JavaScript and CSS). Requests and responses that are marked as\nuncacheable, as well as dynamic content (including HTML), will not be\ncached.\n\nIf no value is provided for cdnPolicy.cacheMode, it defaults\nto CACHE_ALL_STATIC.",
          "type": "string",
          "enumDescriptions": [
            "Automatically cache static content, including common image formats,\nmedia (video and audio), and web assets (JavaScript and CSS).\nRequests and responses that are marked as uncacheable, as well as\ndynamic content (including HTML), will not be cached.",
            "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\"\ndirectives in Cache-Control response headers.\nWarning: this may result in Cloud CDN caching private,\nper-user (user identifiable) content.",
            "",
            "Requires the origin to set valid caching headers to cache content.\nResponses without these headers will not be cached at Google's edge,\nand will require a full trip to the origin on every request,\npotentially impacting performance and increasing load on the\norigin server."
          ]
        },
        "serveWhileStale": {
          "type": "integer",
          "format": "int32",
          "description": "Serve existing content from the cache (if available) when revalidating\ncontent with the origin, or when an error is encountered when refreshing\nthe cache.\nThis setting defines the default \"max-stale\" duration for any cached\nresponses that do not specify a max-stale directive. Stale responses that\nexceed the TTL configured here will not be served. The default limit\n(max-stale) is 86400s (1 day), which will allow stale content to be\nserved up to this limit beyond the max-age (or s-maxage) of a cached\nresponse.\nThe maximum allowed value is 604800 (1 week).\nSet this to zero (0) to disable serve-while-stale."
        },
        "negativeCachingPolicy": {
          "type": "array",
          "items": {
            "$ref": "BackendBucketCdnPolicyNegativeCachingPolicy"
          },
          "description": "Sets a cache TTL for the specified HTTP status code.\nnegative_caching must be enabled to configure negative_caching_policy.\nOmitting the policy and leaving negative_caching enabled will use\nCloud CDN's default cache TTLs.\nNote that when specifying an explicit negative_caching_policy, you\nshould take care to specify a cache TTL for all response codes\nthat you wish to cache. Cloud CDN will not apply any default\nnegative caching when a policy exists."
        },
        "negativeCaching": {
          "type": "boolean",
          "description": "Negative caching allows per-status code TTLs to be set, in order\nto apply fine-grained caching for common errors or redirects.\nThis can reduce the load on your origin and improve end-user\nexperience by reducing response latency.\nWhen the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS,\nnegative caching applies to responses with the specified response code\nthat lack any Cache-Control, Expires, or Pragma: no-cache directives.\nWhen the cache mode is set to FORCE_CACHE_ALL, negative caching applies\nto all responses with the specified response code, and override any\ncaching headers.\nBy default, Cloud CDN will apply the following default TTLs to these\nstatus codes:\nHTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m\nHTTP 404 (Not Found), 410 (Gone),\n451 (Unavailable For Legal Reasons): 120s\nHTTP 405 (Method Not Found), 501 (Not Implemented): 60s.\nThese defaults can be overridden in negative_caching_policy."
        },
        "requestCoalescing": {
          "description": "If true then Cloud CDN will combine multiple concurrent cache fill\nrequests into a small number of requests to the origin.",
          "type": "boolean"
        },
        "cacheKeyPolicy": {
          "description": "The CacheKeyPolicy for this CdnPolicy.",
          "$ref": "BackendBucketCdnPolicyCacheKeyPolicy"
        },
        "defaultTtl": {
          "description": "Specifies the default TTL for cached content served by this origin for\nresponses that do not have an existing valid TTL (max-age or s-maxage).\nSetting a TTL of \"0\" means \"always revalidate\".\nThe value of defaultTTL cannot be set to a value greater than that of\nmaxTTL, but can be equal.\nWhen the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL\nwill overwrite the TTL set in all responses. The maximum allowed value is\n31,622,400s (1 year), noting that infrequently accessed objects may be\nevicted from the cache before the defined TTL.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "BackendBucketCdnPolicy",
      "type": "object"
    },
    "LocalizedMessage": {
      "id": "LocalizedMessage",
      "type": "object",
      "properties": {
        "locale": {
          "description": "The locale used following the specification defined at\nhttps://www.rfc-editor.org/rfc/bcp/bcp47.txt.\nExamples are: \"en-US\", \"fr-CH\", \"es-MX\"",
          "type": "string"
        },
        "message": {
          "description": "The localized error message in the above locale.",
          "type": "string"
        }
      },
      "description": "Provides a localized error message that is safe to return to the user\nwhich can be attached to an RPC error."
    },
    "SecurityPolicyList": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "type": "string",
          "default": "compute#securityPolicyList",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#securityPolicyList for listsof securityPolicies",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "SecurityPolicy"
          },
          "description": "A list of SecurityPolicy resources."
        },
        "warning": {
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message."
        }
      },
      "id": "SecurityPolicyList"
    },
    "PacketMirroringsScopedList": {
      "properties": {
        "warning": {
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "type": "object",
          "description": "Informational warning which replaces the list of packetMirrorings when the\nlist is empty."
        },
        "packetMirrorings": {
          "type": "array",
          "items": {
            "$ref": "PacketMirroring"
          },
          "description": "A list of packetMirrorings contained in this scope."
        }
      },
      "id": "PacketMirroringsScopedList",
      "type": "object"
    },
    "License": {
      "properties": {
        "kind": {
          "default": "compute#license",
          "description": "Output only. [Output Only] Type of resource. Always compute#license for\nlicenses.",
          "readOnly": true,
          "type": "string"
        },
        "soleTenantOnly": {
          "type": "boolean",
          "description": "If true, this license can only be used on VMs on sole tenant nodes."
        },
        "minimumRetention": {
          "description": "If set, this license will be unable to be removed or replaced once attached\nto a disk until the minimum_retention period has passed.",
          "$ref": "Duration"
        },
        "resourceRequirements": {
          "description": "[Input Only] Deprecated.",
          "$ref": "LicenseResourceRequirements"
        },
        "allowedReplacementLicenses": {
          "items": {
            "type": "string"
          },
          "description": "Specifies licenseCodes of licenses that can replace this license. Note:\nsuch replacements are allowed even if removable_from_disk is false.",
          "type": "array"
        },
        "multiTenantOnly": {
          "type": "boolean",
          "description": "If true, this license can only be used on VMs on multi tenant nodes."
        },
        "appendableToDisk": {
          "type": "boolean",
          "description": "If true, this license can be appended to an existing disk's set of\nlicenses."
        },
        "description": {
          "type": "string",
          "description": "An optional textual description of the resource; provided by the client\nwhen the resource is created."
        },
        "params": {
          "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "LicenseParams"
        },
        "selfLinkWithId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id."
        },
        "osLicense": {
          "description": "If true, indicates this is an OS license. Only one OS license can be\nattached to a disk or image at a time.",
          "type": "boolean"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "type": "string",
          "readOnly": true
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "requiredCoattachedLicenses": {
          "description": "Specifies the set of permissible coattached licenseCodes of licenses that\nsatisfy the coattachment requirement of this license. At least one license\nfrom the set must be attached to the same disk or image as this license.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "updateTimestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Last update timestamp inRFC3339\ntext format."
        },
        "id": {
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "removableFromDisk": {
          "description": "If true, this license can be removed from a disk's set of licenses, with no\nreplacement license needed.",
          "type": "boolean"
        },
        "licenseCode": {
          "description": "[Output Only] The unique code used to attach this license to images,\nsnapshots, and disks.",
          "type": "string",
          "format": "uint64"
        },
        "transferable": {
          "type": "boolean",
          "description": "If false, licenses will not be copied from the source resource when\ncreating an image from a disk, disk from snapshot, or snapshot from disk."
        },
        "name": {
          "description": "Name of the resource. The name must be 1-63 characters long and\ncomply withRFC1035.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "annotations": {
            "required": [
              "compute.images.insert"
            ]
          }
        },
        "chargesUseFee": {
          "type": "boolean",
          "description": "[Output Only] Deprecated. This field no longer reflects whether a license\ncharges a usage fee."
        },
        "incompatibleLicenses": {
          "items": {
            "type": "string"
          },
          "description": "Specifies licenseCodes of licenses that are incompatible with this license.\nIf a license is incompatible with this license, it cannot be attached to\nthe same disk or image.",
          "type": "array"
        }
      },
      "description": "Represents a License resource.\n\nA License represents billing and aggregate usage data forpublic andmarketplace images.\n *Caution* This resource is intended for\nuse only by third-party partners who are creatingCloud Marketplace\nimages.",
      "type": "object",
      "id": "License"
    },
    "SecurityPoliciesWafConfig": {
      "properties": {
        "wafRules": {
          "$ref": "PreconfiguredWafSet"
        }
      },
      "type": "object",
      "id": "SecurityPoliciesWafConfig"
    },
    "TargetHttpsProxyAggregatedList": {
      "properties": {
        "warning": {
          "properties": {
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              }
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "unreachables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true
        },
        "items": {
          "type": "object",
          "additionalProperties": {
            "$ref": "TargetHttpsProxiesScopedList",
            "description": "Name of the scope containing this set of TargetHttpsProxies."
          },
          "description": "A list of TargetHttpsProxiesScopedList resources."
        },
        "kind": {
          "default": "compute#targetHttpsProxyAggregatedList",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetHttpsProxyAggregatedList for lists of Target\nHTTP Proxies."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        }
      },
      "id": "TargetHttpsProxyAggregatedList",
      "type": "object"
    },
    "FutureReservationSpecificSKUProperties": {
      "properties": {
        "instanceProperties": {
          "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties",
          "description": "Properties of the SKU instances being reserved."
        },
        "sourceInstanceTemplate": {
          "type": "string",
          "description": "The instance template that will be used to populate the\nReservedInstanceProperties of the future reservation"
        },
        "totalCount": {
          "format": "int64",
          "type": "string",
          "description": "Total number of instances for which capacity assurance is requested at a\nfuture time period."
        }
      },
      "id": "FutureReservationSpecificSKUProperties",
      "type": "object"
    },
    "NetworkRoutingConfig": {
      "id": "NetworkRoutingConfig",
      "description": "A routing configuration attached to a network resource. The message\nincludes the list of routers associated with the network, and a flag\nindicating the type of routing behavior to enforce network-wide.",
      "type": "object",
      "properties": {
        "effectiveBgpInterRegionCost": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "ADD_COST_TO_MED",
            "DEFAULT"
          ],
          "description": "Output only. [Output Only] Effective value of the bgp_inter_region_cost\nfield.",
          "readOnly": true
        },
        "bgpInterRegionCost": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Allows to define a preferred approach for handling inter-region cost in\nthe selection process when using the STANDARD BGP best path\nselection algorithm. Can be DEFAULT orADD_COST_TO_MED.",
          "enum": [
            "ADD_COST_TO_MED",
            "DEFAULT"
          ]
        },
        "bgpBestPathSelectionMode": {
          "description": "The BGP best path selection algorithm to be employed within this network\nfor dynamic routes learned by Cloud Routers. Can be LEGACY\n(default) or STANDARD.",
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "LEGACY",
            "STANDARD"
          ]
        },
        "effectiveBgpAlwaysCompareMed": {
          "description": "Output only. [Output Only] Effective value of the bgp_always_compare_med\nfield.",
          "type": "boolean",
          "readOnly": true
        },
        "bgpAlwaysCompareMed": {
          "type": "boolean",
          "description": "Enable comparison of Multi-Exit Discriminators (MED) across routes with\ndifferent neighbor ASNs when using the STANDARD BGP best path selection\nalgorithm."
        },
        "routingMode": {
          "description": "The network-wide routing mode to use. If set to REGIONAL,\nthis network's Cloud Routers will only advertise routes with subnets\nof this network in the same region as the router. If set toGLOBAL, this network's Cloud Routers will advertise\nroutes with all subnets of this network, across regions.",
          "enum": [
            "GLOBAL",
            "REGIONAL"
          ],
          "enumDescriptions": [
            "",
            ""
          ],
          "type": "string"
        }
      }
    },
    "ShieldedInstanceConfig": {
      "id": "ShieldedInstanceConfig",
      "properties": {
        "enableVtpm": {
          "description": "Defines whether the instance has the vTPM enabled.Enabled by\ndefault.",
          "type": "boolean"
        },
        "enableSecureBoot": {
          "type": "boolean",
          "description": "Defines whether the instance has Secure Boot enabled.Disabled by\ndefault."
        },
        "enableIntegrityMonitoring": {
          "type": "boolean",
          "description": "Defines whether the instance has integrity monitoring enabled.Enabled by\ndefault."
        }
      },
      "type": "object",
      "description": "A set of Shielded Instance options."
    },
    "CustomErrorResponsePolicy": {
      "id": "CustomErrorResponsePolicy",
      "type": "object",
      "description": "Specifies the custom error response policy that must be applied when the\nbackend service or backend bucket responds with an error.",
      "properties": {
        "errorService": {
          "description": "The full or partial URL to the BackendBucket resource that\ncontains the custom error content. Examples are:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket\n     - compute/v1/projects/project/global/backendBuckets/myBackendBucket\n     - global/backendBuckets/myBackendBucket\n\nIf errorService is not specified at lower levels likepathMatcher, pathRule and routeRule,\nan errorService specified at a higher level in theUrlMap will be used. IfUrlMap.defaultCustomErrorResponsePolicy contains one or moreerrorResponseRules[], it must specifyerrorService. \n\nIf load balancer cannot reach\nthe backendBucket, a simple Not Found Error will\nbe returned, with the original response code (oroverrideResponseCode if configured).\n\nerrorService is not supported for internal or regionalHTTP/HTTPS load balancers.",
          "type": "string"
        },
        "errorResponseRules": {
          "description": "Specifies rules for returning error responses.\n\nIn a given policy, if you specify rules for both a range of error codes\nas well as rules for specific error codes then rules with specific error\ncodes have a higher priority. For example, assume that you configure a rule\nfor 401 (Un-authorized) code, and another for all 4 series\nerror codes (4XX). If the backend service returns a401, then the rule for 401 will be applied.\nHowever if the backend service returns a 403, the rule for4xx takes effect.",
          "type": "array",
          "items": {
            "$ref": "CustomErrorResponsePolicyCustomErrorResponseRule"
          }
        }
      }
    },
    "InstancesStartWithEncryptionKeyRequest": {
      "type": "object",
      "id": "InstancesStartWithEncryptionKeyRequest",
      "properties": {
        "disks": {
          "items": {
            "$ref": "CustomerEncryptionKeyProtectedDisk"
          },
          "description": "Array of disks associated with this instance that are protected with acustomer-supplied\nencryption key.\n\nIn order to start the instance, the disk url and its corresponding key must\nbe provided.\n\nIf the disk is not protected with a customer-supplied encryption key it\nshould not be specified.",
          "type": "array"
        }
      }
    },
    "InstanceSettingsMetadata": {
      "properties": {
        "kind": {
          "readOnly": true,
          "default": "compute#metadata",
          "description": "Output only. [Output Only] Type of the resource. Always compute#metadata\nfor metadata.",
          "type": "string"
        },
        "items": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A metadata key/value items map.\nThe total size of all keys and values must be less than 512KB."
        }
      },
      "type": "object",
      "id": "InstanceSettingsMetadata"
    },
    "StoragePoolAggregatedList": {
      "type": "object",
      "id": "StoragePoolAggregatedList",
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array"
        },
        "kind": {
          "default": "compute#storagePoolAggregatedList",
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolAggregatedList for aggregated lists of\nstorage pools."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            }
          }
        },
        "items": {
          "description": "A list of StoragePoolsScopedList resources.",
          "type": "object",
          "additionalProperties": {
            "$ref": "StoragePoolsScopedList",
            "description": "[Output Only] Name of the scope containing this set of storage pool."
          }
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "etag": {
          "type": "string"
        }
      }
    },
    "StoragePool": {
      "description": "Represents a zonal storage pool resource.",
      "properties": {
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string",
          "readOnly": true
        },
        "storagePoolType": {
          "type": "string",
          "description": "Type of the storage pool."
        },
        "labelFingerprint": {
          "format": "byte",
          "description": "A fingerprint for the labels being applied to this storage pool, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a storage pool.",
          "type": "string"
        },
        "exapoolProvisionedCapacityGb": {
          "description": "Provisioned capacities for each SKU for this Exapool in GiB",
          "$ref": "StoragePoolExapoolProvisionedCapacityGb"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "shareSettings": {
          "description": "Share settings for the storage pool.",
          "$ref": "StoragePoolShareSettings"
        },
        "zone": {
          "type": "string",
          "description": "Output only. [Output Only] URL of the zone where the storage pool resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "readOnly": true
        },
        "poolProvisionedCapacityGb": {
          "annotations": {
            "required": [
              "compute.storagePools.insert"
            ]
          },
          "format": "int64",
          "description": "Size of the storage pool in GiB. For more information about the size\nlimits, see https://cloud.google.com/compute/docs/disks/storage-pools.",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "$ref": "StoragePoolResourceStatus",
          "description": "Output only. [Output Only] Status information for the storage pool resource."
        },
        "resourceStatus": {
          "$ref": "StoragePoolResourceStatus",
          "description": "Output only. [Output Only] Status information for the storage pool resource.",
          "readOnly": true
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Always compute#storagePool\nfor storage pools.",
          "readOnly": true,
          "default": "compute#storagePool"
        },
        "name": {
          "annotations": {
            "required": [
              "compute.storagePools.insert"
            ]
          },
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "params": {
          "$ref": "StoragePoolParams",
          "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload."
        },
        "poolProvisionedThroughput": {
          "type": "string",
          "description": "Provisioned throughput of the storage pool in MiB/s. Only relevant if the\nstorage pool type is hyperdisk-balanced or hyperdisk-throughput.",
          "format": "int64"
        },
        "selfLinkWithId": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.",
          "readOnly": true
        },
        "capacityProvisioningType": {
          "enumDescriptions": [
            "Advanced provisioning \"thinly\" allocates the related resource.",
            "Standard provisioning allocates the related resource for the pool\ndisks' exclusive use.",
            ""
          ],
          "description": "Provisioning type of the byte capacity of the pool.",
          "enum": [
            "ADVANCED",
            "STANDARD",
            "UNSPECIFIED"
          ],
          "type": "string"
        },
        "labels": {
          "description": "Labels to apply to this storage pool. These can be later modified by\nthe setLabels method.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "state": {
          "readOnly": true,
          "enumDescriptions": [
            "StoragePool is provisioning",
            "StoragePool is deleting.",
            "StoragePool creation failed.",
            "StoragePool is ready for use."
          ],
          "enum": [
            "CREATING",
            "DELETING",
            "FAILED",
            "READY"
          ],
          "description": "Output only. [Output Only] The status of storage pool creation.\n   \n   \n     - CREATING: Storage pool is provisioning.\n     storagePool.\n     - FAILED: Storage pool creation failed.\n     - READY: Storage pool is ready for use.\n     - DELETING: Storage pool is deleting.",
          "type": "string"
        },
        "performanceProvisioningType": {
          "enum": [
            "ADVANCED",
            "STANDARD",
            "UNSPECIFIED"
          ],
          "description": "Provisioning type of the performance-related parameters of the pool,\nsuch as throughput and IOPS.",
          "enumDescriptions": [
            "Advanced provisioning \"thinly\" allocates the related resource.",
            "Standard provisioning allocates the related resource for the pool\ndisks' exclusive use.",
            ""
          ],
          "type": "string"
        },
        "poolProvisionedIops": {
          "format": "int64",
          "type": "string",
          "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool\ntype is hyperdisk-balanced."
        }
      },
      "id": "StoragePool",
      "type": "object"
    },
    "PreconfiguredWafSet": {
      "properties": {
        "expressionSets": {
          "description": "List of entities that are currently supported for WAF rules.",
          "items": {
            "$ref": "WafExpressionSet"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "PreconfiguredWafSet"
    },
    "TestPermissionsRequest": {
      "type": "object",
      "id": "TestPermissionsRequest",
      "properties": {
        "permissions": {
          "items": {
            "type": "string"
          },
          "description": "The set of permissions to check for the 'resource'. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed.",
          "type": "array"
        }
      }
    },
    "VpnTunnel": {
      "description": "Represents a Cloud VPN Tunnel resource.\n\nFor more information about VPN, read the\nthe Cloud VPN Overview.",
      "properties": {
        "peerGcpGateway": {
          "description": "URL of the peer side HA VPN gateway to which this VPN tunnel\nis connected. Provided by the client when the VPN tunnel is created.\nThis field can be used when creating highly available VPN from VPC network\nto VPC network, the field is exclusive with the field peerExternalGateway.\nIf provided, the VPN tunnel will automatically use the same\nvpnGatewayInterface ID in the peer Google Cloud VPN gateway.",
          "type": "string"
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "VpnTunnelParams"
        },
        "kind": {
          "default": "compute#vpnTunnel",
          "description": "Output only. [Output Only] Type of resource. Always compute#vpnTunnel for\nVPN tunnels.",
          "type": "string",
          "readOnly": true
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.",
          "type": "object"
        },
        "targetVpnGateway": {
          "type": "string",
          "description": "URL of the Target VPN gateway with which this VPN tunnel is associated.\nProvided by the client when the VPN tunnel is created.\nThis field can be set only for Classic VPN tunnels."
        },
        "remoteTrafficSelector": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Remote traffic selectors to use when establishing the VPN tunnel with\nthe peer VPN gateway. The value should be a CIDR formatted string,\nfor example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is\nsupported for Classic VPN tunnels. This field is output only for HA VPN\ntunnels."
        },
        "name": {
          "annotations": {
            "required": [
              "compute.vpnTunnels.insert"
            ]
          },
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "detailedStatus": {
          "type": "string",
          "description": "[Output Only] Detailed status message for the VPN tunnel."
        },
        "sharedSecretHash": {
          "type": "string",
          "description": "Hash of the shared secret."
        },
        "vpnGateway": {
          "description": "URL of the VPN gateway with which this VPN tunnel is associated.\nProvided by the client when the VPN tunnel is created. This must be\nused (instead of target_vpn_gateway) if a High Availability VPN gateway\nresource is created.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "ALLOCATING_RESOURCES",
            "AUTHORIZATION_ERROR",
            "DEPROVISIONING",
            "ESTABLISHED",
            "FAILED",
            "FIRST_HANDSHAKE",
            "NEGOTIATION_FAILURE",
            "NETWORK_ERROR",
            "NO_INCOMING_PACKETS",
            "PROVISIONING",
            "REJECTED",
            "STOPPED",
            "WAITING_FOR_FULL_CONFIG"
          ],
          "description": "[Output Only] The status of the VPN tunnel, which can be one of the\nfollowing:\n   \n   - PROVISIONING: Resource is being allocated for the VPN tunnel.\n   - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs\n   from\n     the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route\n     resources are needed to setup the VPN tunnel.\n   - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.\n   - ESTABLISHED: Secure session is successfully established with the peer\n   VPN. \n   - NETWORK_ERROR: Deprecated, replaced by\n   NO_INCOMING_PACKETS \n   - AUTHORIZATION_ERROR: Auth error (for example,\n   bad shared secret). \n   - NEGOTIATION_FAILURE: Handshake failed.\n   - DEPROVISIONING: Resources are being deallocated for the VPN\n   tunnel. \n   - FAILED: Tunnel creation has failed and the tunnel is not\n   ready to be used. \n   - NO_INCOMING_PACKETS: No incoming packets from\n   peer. \n   - REJECTED: Tunnel configuration was rejected, can be result\n   of being denied access. \n   - ALLOCATING_RESOURCES: Cloud VPN is in the\n   process of allocating all required resources.\n   - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted\n   for Classic VPN tunnels or the project is in frozen state.\n   - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,\n   probably behind NAT. \n   - TS_NARROWING_NOT_ALLOWED: Traffic selector\n   narrowing not allowed for an HA-VPN tunnel.",
          "enumDescriptions": [
            "Cloud VPN is in the process of allocating all required resources\n(specifically, a borg task).",
            "Auth error (e.g. bad shared secret).",
            "Resources is being deallocated for the VPN tunnel.",
            "Secure session is successfully established with peer VPN.",
            "Tunnel creation has failed and the tunnel is not ready to be used.",
            "Successful first handshake with peer VPN.",
            "Handshake failed.",
            "Deprecated, replaced by NO_INCOMING_PACKETS",
            "No incoming packets from peer",
            "Resource is being allocated for the VPN tunnel.",
            "Tunnel configuration was rejected, can be result of being denylisted.",
            "Tunnel is stopped due to its Forwarding Rules being deleted.",
            "Waiting to receive all VPN-related configs from user. Network,\nTargetVpnGateway, VpnTunnel, ForwardingRule and Route resources are\nneeded to setup VPN tunnel."
          ]
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "peerExternalGateway": {
          "type": "string",
          "description": "URL of the peer side external VPN gateway to which this VPN tunnel is\nconnected.\nProvided by the client when the VPN tunnel is created.\nThis field is exclusive with the field peerGcpGateway."
        },
        "peerIp": {
          "description": "IP address of the peer VPN gateway. Only IPv4 is supported. This field can\nbe set only for Classic VPN tunnels.",
          "type": "string"
        },
        "cipherSuite": {
          "$ref": "VpnTunnelCipherSuite",
          "description": "User specified list of ciphers to use for the phase 1 and phase 2 of the\nIKE protocol."
        },
        "vpnGatewayInterface": {
          "type": "integer",
          "format": "int32",
          "description": "The interface ID of the VPN gateway with which this VPN tunnel is\nassociated.\nPossible values are: `0`, `1`."
        },
        "peerExternalGatewayInterface": {
          "type": "integer",
          "format": "int32",
          "description": "The interface ID of the external VPN gateway to which this VPN tunnel is\nconnected. Provided by the client when the VPN tunnel is created.\nPossible values are: `0`, `1`, `2`, `3`. The number of IDs in use\ndepends on the external VPN gateway redundancy type."
        },
        "id": {
          "type": "string",
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "labelFingerprint": {
          "description": "A fingerprint for the labels being applied to this VpnTunnel, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a VpnTunnel.",
          "type": "string",
          "format": "byte"
        },
        "ikeVersion": {
          "format": "int32",
          "description": "IKE protocol version to use when establishing the VPN tunnel with the peer\nVPN gateway. Acceptable IKE versions are 1 or 2.\nThe default version is 2.",
          "type": "integer"
        },
        "sharedSecret": {
          "description": "Shared secret used to set the secure session between the Cloud VPN gateway\nand the peer VPN gateway.",
          "type": "string"
        },
        "region": {
          "description": "[Output Only] URL of the region where the VPN tunnel resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.",
          "type": "string"
        },
        "localTrafficSelector": {
          "description": "Local traffic selector to use when establishing the VPN tunnel with the\npeer VPN gateway. The value should be a CIDR formatted string, for\nexample: 192.168.0.0/16. The ranges must be disjoint.\nOnly IPv4 is supported for Classic VPN tunnels. This field is output only\nfor HA VPN tunnels.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "router": {
          "description": "URL of the router resource to be used for dynamic routing.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "VpnTunnel"
    },
    "ResourceStatusPhysicalHostTopologyAdditionalAttributes": {
      "properties": {
        "acceleratorTopologyIds": {
          "type": "object",
          "readOnly": true,
          "description": "Output only. The IDs of the accelerator topologies the instance belongs to. For\nexample\nThe key will be topologies like \"4x4\", \"2x2x2\" and the value will be\nthe location ID of the topologies.",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "description": "Additional location information of the running instance.",
      "id": "ResourceStatusPhysicalHostTopologyAdditionalAttributes",
      "type": "object"
    },
    "VpnGatewayList": {
      "id": "VpnGatewayList",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "VpnGateway"
          },
          "description": "A list of VpnGateway resources."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              }
            }
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#vpnGatewayList",
          "description": "Output only. [Output Only] Type of resource. Always compute#vpnGateway for\nVPN gateways.",
          "type": "string"
        }
      },
      "description": "Contains a list of VpnGateway resources.",
      "type": "object"
    },
    "NodeGroupsSetNodeTemplateRequest": {
      "properties": {
        "nodeTemplate": {
          "description": "Full or partial URL of the node template resource to be updated for this\nnode group.",
          "type": "string"
        }
      },
      "id": "NodeGroupsSetNodeTemplateRequest",
      "type": "object"
    },
    "SnapshotGroupParameters": {
      "type": "object",
      "properties": {
        "sourceSnapshotGroup": {
          "type": "string",
          "description": "The source snapshot group used to create disks. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n   \n   \n     - https://www.googleapis.com/compute/v1/projects/project/global/snapshotGroups/snapshotGroup \n   - projects/project/global/snapshotGroups/snapshotGroup\n     - global/snapshotGroups/snapshotGroup"
        },
        "type": {
          "description": "URL of the disk type resource describing which disk type to use to create\ndisks. Provide this when creating the disk. For example:projects/project/zones/zone/diskTypes/pd-ssd. See Persistent disk\ntypes.",
          "type": "string"
        },
        "replicaZones": {
          "description": "URLs of the zones where disks should be replicated to. Only applicable\nfor regional resources.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "SnapshotGroupParameters"
    },
    "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": {
      "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig",
      "type": "object",
      "properties": {
        "autoDeployExpirationSec": {
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "The name must be 1-63 characters long, and comply withRFC1035.\nThe name must be unique within the security policy.",
          "type": "string"
        },
        "trafficGranularityConfigs": {
          "type": "array",
          "description": "Configuration options for enabling Adaptive Protection to operate\non specified granular traffic units.",
          "items": {
            "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig"
          }
        },
        "detectionAbsoluteQps": {
          "format": "float",
          "type": "number"
        },
        "detectionLoadThreshold": {
          "format": "float",
          "type": "number"
        },
        "autoDeployImpactedBaselineThreshold": {
          "type": "number",
          "format": "float"
        },
        "autoDeployLoadThreshold": {
          "format": "float",
          "type": "number"
        },
        "detectionRelativeToBaselineQps": {
          "format": "float",
          "type": "number"
        },
        "autoDeployConfidenceThreshold": {
          "type": "number",
          "format": "float"
        }
      }
    },
    "InstanceGroup": {
      "properties": {
        "creationTimestamp": {
          "description": "Output only. [Output Only] The creation timestamp for this instance group inRFC3339\ntext format.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "annotations": {
            "required": [
              "compute.instanceGroups.insert"
            ]
          },
          "description": "The name of the instance group. The name must be 1-63 characters\nlong, and comply withRFC1035.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "subnetwork": {
          "description": "Output only. [Output Only] The URL of the subnetwork to which all instances in the\ninstance group belong. If your instance has multiple network interfaces,\nthen the network and subnetwork fields only refer to the\nnetwork and subnet used by your primary interface (nic0).",
          "type": "string",
          "readOnly": true
        },
        "fingerprint": {
          "type": "string",
          "format": "byte",
          "readOnly": true,
          "description": "Output only. [Output Only] The fingerprint of the named ports. The system\nuses this fingerprint to detect conflicts when multiple users change the\nnamed ports concurrently."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The URL for this instance group. The server generates\nthis URL."
        },
        "size": {
          "format": "int32",
          "readOnly": true,
          "description": "Output only. [Output Only] The total number of instances in the instance group.",
          "type": "integer"
        },
        "zone": {
          "type": "string",
          "description": "Output only. [Output Only] The URL of thezone\nwhere the instance group is located (for zonal resources).",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "id": {
          "type": "string",
          "description": "Output only. [Output Only] A unique identifier for this instance group, generated\nby the server.",
          "format": "uint64",
          "readOnly": true
        },
        "network": {
          "description": "[Output Only] The URL of the network to which all instances in the\ninstance group belong. If your instance has multiple network interfaces,\nthen the network and subnetwork fields only refer to the\nnetwork and subnet used by your primary interface (nic0).",
          "type": "string"
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] The URL of theregion\nwhere the instance group is located (for regional resources)."
        },
        "kind": {
          "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceGroup for instance groups.",
          "readOnly": true,
          "default": "compute#instanceGroup",
          "type": "string"
        },
        "namedPorts": {
          "items": {
            "$ref": "NamedPort"
          },
          "description": "Optional. Assigns a name to a port number. For example:{name: \"http\", port: 80}\n\nThis\nallows the system to reference ports by the assigned name instead of a\nport number. Named ports can also contain multiple ports. For example:[{name: \"app1\", port: 8080}, {name:\n\"app1\", port: 8081}, {name: \"app2\", port:\n8082}]\n\nNamed ports apply to all instances in this instance group.",
          "type": "array"
        }
      },
      "type": "object",
      "description": "Represents an Instance Group resource.\n\nInstance Groups can be used to configure a target forload\nbalancing.\n\nInstance groups can either be managed or unmanaged.\n\nTo create \nmanaged instance groups, use the instanceGroupManager orregionInstanceGroupManager resource instead.\n\nUse zonal unmanaged instance groups if you need to applyload\nbalancing to groups of heterogeneous instances or if you need to manage\nthe instances yourself. You cannot create regional unmanaged instance groups.\n\nFor more information, readInstance\ngroups.",
      "id": "InstanceGroup"
    },
    "Screenshot": {
      "id": "Screenshot",
      "type": "object",
      "properties": {
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Always compute#screenshot\nfor the screenshots.",
          "default": "compute#screenshot",
          "type": "string",
          "readOnly": true
        },
        "contents": {
          "type": "string",
          "description": "[Output Only] The Base64-encoded screenshot data."
        }
      },
      "description": "An instance's screenshot."
    },
    "NotificationEndpointAggregatedList": {
      "properties": {
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "kind": {
          "default": "compute#notificationEndpointAggregatedList",
          "type": "string",
          "readOnly": true,
          "description": "Output only. Type of resource."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true
        },
        "items": {
          "description": "A list of NotificationEndpointsScopedList resources.",
          "type": "object",
          "additionalProperties": {
            "description": "Name of the scope containing this set of NotificationEndpoints.",
            "$ref": "NotificationEndpointsScopedList"
          }
        }
      },
      "id": "NotificationEndpointAggregatedList",
      "description": "Contains a list of NotificationEndpointsScopedList.",
      "type": "object"
    },
    "NodeGroupsAddNodesRequest": {
      "type": "object",
      "id": "NodeGroupsAddNodesRequest",
      "properties": {
        "additionalNodeCount": {
          "format": "int32",
          "description": "Count of additional nodes to be added to the node group.",
          "type": "integer"
        }
      }
    },
    "RouterStatusNatStatusNatRuleStatus": {
      "type": "object",
      "description": "Status of a NAT Rule contained in this NAT.",
      "properties": {
        "ruleNumber": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. Rule number of the rule."
        },
        "minExtraIpsNeeded": {
          "format": "int32",
          "readOnly": true,
          "type": "integer",
          "description": "Output only. The number of extra IPs to allocate. This will be greater than 0 only\nif the existing IPs in this NAT Rule are NOT enough to allow all\nconfigured VMs to use NAT."
        },
        "activeNatIps": {
          "description": "Output only. A list of active IPs for NAT.\nExample: [\"1.1.1.1\", \"179.12.26.133\"].",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        },
        "numVmEndpointsWithNatMappings": {
          "description": "Output only. Number of VM endpoints (i.e., NICs) that have NAT Mappings from this\nNAT Rule.",
          "type": "integer",
          "readOnly": true,
          "format": "int32"
        },
        "drainNatIps": {
          "description": "Output only. A list of IPs for NAT that are in drain mode.\nExample: [\"1.1.1.1\", \"179.12.26.133\"].",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        }
      },
      "id": "RouterStatusNatStatusNatRuleStatus"
    },
    "RouterStatusBgpPeerStatus": {
      "id": "RouterStatusBgpPeerStatus",
      "type": "object",
      "properties": {
        "peerIpv6NexthopAddress": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. IPv6 address of the remote BGP interface."
        },
        "statusReason": {
          "enum": [
            "IPV4_PEER_ON_IPV6_ONLY_CONNECTION",
            "IPV6_PEER_ON_IPV4_ONLY_CONNECTION",
            "MD5_AUTH_INTERNAL_PROBLEM",
            "STATUS_REASON_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "BGP peer disabled because it requires IPv4 but the underlying\nconnection is IPv6-only.",
            "BGP peer disabled because it requires IPv6 but the underlying\nconnection is IPv4-only.",
            "Indicates internal problems with configuration of MD5 authentication.\nThis particular reason can only be returned when md5AuthEnabled is true\nand status is DOWN.",
            ""
          ],
          "description": "Indicates why particular status was returned.",
          "type": "string"
        },
        "numLearnedRoutes": {
          "description": "Output only. Number of routes learned from the remote BGP Peer.",
          "type": "integer",
          "format": "uint32",
          "readOnly": true
        },
        "linkedVpnTunnel": {
          "description": "Output only. URL of the VPN tunnel that this BGP peer controls.",
          "readOnly": true,
          "type": "string"
        },
        "routerApplianceInstance": {
          "description": "Output only. [Output only] URI of the VM instance that is used as third-party router\nappliances such as Next Gen Firewalls, Virtual Routers, or Router\nAppliances.\nThe VM instance is the peer side of the BGP session.",
          "readOnly": true,
          "type": "string"
        },
        "ipAddress": {
          "description": "Output only. IP address of the local BGP interface.",
          "type": "string",
          "readOnly": true
        },
        "bfdStatus": {
          "$ref": "BfdStatus"
        },
        "uptimeSeconds": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Time this session has been up, in seconds.\nFormat:\n 145"
        },
        "uptime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Time this session has been up.\nFormat:\n 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds"
        },
        "name": {
          "readOnly": true,
          "description": "Output only. Name of this BGP peer. Unique within the Routers resource.",
          "type": "string"
        },
        "ipv4NexthopAddress": {
          "type": "string",
          "description": "Output only. IPv4 address of the local BGP interface.",
          "readOnly": true
        },
        "advertisedRoutes": {
          "description": "Routes that were advertised to the remote BGP peer",
          "items": {
            "$ref": "Route"
          },
          "type": "array"
        },
        "peerIpAddress": {
          "description": "Output only. IP address of the remote BGP interface.",
          "type": "string",
          "readOnly": true
        },
        "enableIpv4": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Enable IPv4 traffic over BGP Peer.\nIt is enabled by default if the peerIpAddress is version 4."
        },
        "status": {
          "readOnly": true,
          "enum": [
            "DOWN",
            "UNKNOWN",
            "UP"
          ],
          "description": "Output only. Status of the BGP peer: {UP, DOWN}",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "peerIpv4NexthopAddress": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. IPv4 address of the remote BGP interface."
        },
        "enableIpv6": {
          "readOnly": true,
          "description": "Output only. Enable IPv6 traffic over BGP Peer.\nIt is enabled by default if the peerIpAddress is version 6.",
          "type": "boolean"
        },
        "state": {
          "readOnly": true,
          "description": "Output only. The state of the BGP session. For a list of possible values for this\nfield, seeBGP session states.",
          "type": "string"
        },
        "md5AuthEnabled": {
          "description": "Informs whether MD5 authentication is enabled on this BGP peer.",
          "type": "boolean"
        },
        "ipv6NexthopAddress": {
          "description": "Output only. IPv6 address of the local BGP interface.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "InstanceMoveRequest": {
      "type": "object",
      "properties": {
        "destinationZone": {
          "description": "The URL of the destination zone to move the instance. This can be a full or\npartial URL. For example, the following are all valid URLs to a zone:\n   \n   - https://www.googleapis.com/compute/v1/projects/project/zones/zone \n   - projects/project/zones/zone \n   - zones/zone",
          "type": "string"
        },
        "targetInstance": {
          "type": "string",
          "description": "The URL of the target instance to move. This can be a full or partial URL.\nFor example, the following are all valid URLs to an instance:\n   \n   - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n   - projects/project/zones/zone/instances/instance \n   - zones/zone/instances/instance"
        }
      },
      "id": "InstanceMoveRequest"
    },
    "FutureReservationStoragePoolProvisionedCapacity": {
      "id": "FutureReservationStoragePoolProvisionedCapacity",
      "description": "Storage pool provisioned capacities for each SKU type.",
      "type": "object",
      "properties": {
        "poolProvisionedCapacityGb": {
          "description": "Size of the storage pool in GiB.",
          "format": "int64",
          "type": "string"
        },
        "poolProvisionedIops": {
          "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool\ntype is hyperdisk-balanced.",
          "type": "string",
          "format": "int64"
        },
        "poolProvisionedThroughput": {
          "description": "Provisioned throughput of the storage pool in MiB/s. Only relevant if\nthe storage pool type is hyperdisk-balanced or hyperdisk-throughput.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "ReservationAggregatedList": {
      "description": "Contains a list of reservations.",
      "type": "object",
      "id": "ReservationAggregatedList",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "items": {
          "description": "A list of Allocation resources.",
          "additionalProperties": {
            "description": "Name of the scope containing this set of reservations.",
            "$ref": "ReservationsScopedList"
          },
          "type": "object"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "unreachables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "readOnly": true
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#reservationAggregatedList",
          "description": "Output only. Type of resource."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            }
          }
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        }
      }
    },
    "FutureResourcesSpecAggregateResources": {
      "id": "FutureResourcesSpecAggregateResources",
      "type": "object",
      "properties": {
        "workloadType": {
          "type": "string",
          "enum": [
            "BATCH",
            "SERVING",
            "UNSPECIFIED"
          ],
          "description": "Workload type. Use for TPU reservations.",
          "enumDescriptions": [
            "Reserved resources will be optimized for BATCH workloads, such as ML\ntraining.",
            "Reserved resources will be optimized for SERVING workloads, such as ML\ninference.",
            ""
          ]
        },
        "acceleratorCount": {
          "format": "int64",
          "description": "Size of the request, in accelerator (chip) count.",
          "type": "string"
        },
        "vmFamily": {
          "enum": [
            "VM_FAMILY_CLOUD_TPU_DEVICE_CT3",
            "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L",
            "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP",
            "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P",
            "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X"
          ],
          "description": "The VM family that all instances scheduled against this reservation\nmust belong to. Use for TPU reservations.",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ]
        }
      }
    },
    "BackendBucketListUsable": {
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "kind": {
          "type": "string",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#usableBackendBucketList for lists of usable backend\nbuckets.",
          "readOnly": true,
          "default": "compute#usableBackendBucketList"
        },
        "items": {
          "description": "A list of BackendBucket resources.",
          "items": {
            "$ref": "BackendBucket"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "type": "object"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "BackendBucketListUsable",
      "type": "object"
    },
    "NetworksRequestRemovePeeringRequest": {
      "id": "NetworksRequestRemovePeeringRequest",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the peering, which should conform to RFC1035."
        }
      }
    },
    "InstanceGroupManager": {
      "description": "Represents a Managed Instance Group resource.\n\nAn instance group is a collection of VM instances that you can manage as a\nsingle entity. For more information, readInstance groups.\n\nFor zonal Managed Instance Group, use the instanceGroupManagers\nresource.\n\nFor regional Managed Instance Group, use theregionInstanceGroupManagers resource.",
      "id": "InstanceGroupManager",
      "type": "object",
      "properties": {
        "listManagedInstancesResults": {
          "enum": [
            "PAGELESS",
            "PAGINATED"
          ],
          "enumDescriptions": [
            "(Default) Pagination is disabled for the group'slistManagedInstances API method. maxResults\nand pageToken query parameters are ignored and all\ninstances are returned in a single response.",
            "Pagination is enabled for the group's listManagedInstances\nAPI method. maxResults and pageToken query\nparameters are respected."
          ],
          "description": "Pagination behavior of the listManagedInstances API method for\nthis managed instance group.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource."
        },
        "creationTimestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The creation timestamp for this managed instance group inRFC3339\ntext format."
        },
        "targetStoppedSize": {
          "description": "The target number of stopped instances for this managed instance group.\nThis number changes when you: \n   \n   - Stop instance using the stopInstances\n   method or start instances using the startInstances\n   method.\n   - Manually change the targetStoppedSize using the update\n   method.",
          "type": "integer",
          "format": "int32"
        },
        "satisfiesPzi": {
          "type": "boolean",
          "description": "Output only. Reserved for future use.",
          "readOnly": true
        },
        "namedPorts": {
          "type": "array",
          "items": {
            "$ref": "NamedPort"
          },
          "description": "[Output Only] Named ports configured on the Instance Groups complementary\nto this Instance Group Manager."
        },
        "autoHealingPolicies": {
          "items": {
            "$ref": "InstanceGroupManagerAutoHealingPolicy"
          },
          "description": "The autohealing policy for this managed instance group. You can specify\nonly one value.",
          "type": "array"
        },
        "region": {
          "description": "Output only. [Output Only] The URL of theregion\nwhere the managed instance group resides (for regional resources).",
          "readOnly": true,
          "type": "string"
        },
        "zone": {
          "readOnly": true,
          "description": "Output only. The URL of azone\nwhere the managed instance group is located (for zonal resources).",
          "type": "string"
        },
        "distributionPolicy": {
          "$ref": "DistributionPolicy",
          "description": "Policy specifying the intended distribution of managed instances across\nzones in a regional managed instance group."
        },
        "allInstancesConfig": {
          "description": "Specifies configuration that overrides the instance template configuration\nfor the group.",
          "$ref": "InstanceGroupManagerAllInstancesConfig"
        },
        "instanceLifecyclePolicy": {
          "description": "The repair policy for this managed instance group.",
          "$ref": "InstanceGroupManagerInstanceLifecyclePolicy"
        },
        "instanceTemplate": {
          "description": "The URL of the instance template that is specified for this managed\ninstance group. The group uses this template to create all new instances\nin the managed instance group. The templates for existing instances in the\ngroup do not change unless you run recreateInstances, runapplyUpdatesToInstances, or set the group'supdatePolicy.type to PROACTIVE.",
          "type": "string"
        },
        "resourcePolicies": {
          "$ref": "InstanceGroupManagerResourcePolicies",
          "description": "Resource policies for this managed instance group."
        },
        "targetSize": {
          "format": "int32",
          "annotations": {
            "required": [
              "compute.instanceGroupManagers.insert",
              "compute.regionInstanceGroupManagers.insert"
            ]
          },
          "type": "integer",
          "description": "The target number of running instances for this managed instance group.\nYou can reduce this number by using the instanceGroupManager\ndeleteInstances or abandonInstances methods. Resizing the group also\nchanges this number."
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "The name of the managed instance group. The name must be 1-63 characters\nlong, and comply withRFC1035.",
          "annotations": {
            "required": [
              "compute.instanceGroupManagers.insert",
              "compute.regionInstanceGroupManagers.insert"
            ]
          }
        },
        "baseInstanceName": {
          "type": "string",
          "description": "The base instance name is a prefix that you want to attach to the names of\nall VMs in a MIG. The maximum character length is 58 and the name must\ncomply with RFC1035 format.\n\nWhen a VM is created in the group, the MIG appends a hyphen and a random\nfour-character string to the base instance name. If you want the MIG to\nassign sequential numbers instead of a random string, then end the base\ninstance name with a hyphen followed by one or more hash symbols. The hash\nsymbols indicate the number of digits. For example, a base instance name of\n\"vm-###\" results in \"vm-001\" as a VM name.\n@pattern\n[a-z](([-a-z0-9]{0,57})|([-a-z0-9]{0,51}-#{1,10}(\\\\[[0-9]{1,10}\\\\])?))"
        },
        "statefulPolicy": {
          "description": "Stateful configuration for this Instanced Group Manager",
          "$ref": "StatefulPolicy"
        },
        "versions": {
          "description": "Specifies the instance templates used by this managed instance group to\ncreate instances.\n\nEach version is defined by an instanceTemplate and aname. Every version can appear at most once per instance\ngroup. This field overrides the top-level instanceTemplate\nfield. Read more about therelationships\nbetween these fields. Exactly one version must leave thetargetSize field unset. That version will be applied to all\nremaining instances. For more information, read aboutcanary\nupdates.",
          "type": "array",
          "items": {
            "$ref": "InstanceGroupManagerVersion"
          }
        },
        "standbyPolicy": {
          "description": "Standby policy for stopped and suspended instances.",
          "$ref": "InstanceGroupManagerStandbyPolicy"
        },
        "instanceFlexibilityPolicy": {
          "$ref": "InstanceGroupManagerInstanceFlexibilityPolicy",
          "description": "Instance flexibility allowing MIG to create VMs from multiple\ntypes of machines.\nInstance flexibility configuration on MIG overrides instance\ntemplate configuration."
        },
        "updatePolicy": {
          "description": "The update policy for this managed instance group.",
          "$ref": "InstanceGroupManagerUpdatePolicy"
        },
        "targetSizePolicy": {
          "$ref": "InstanceGroupManagerTargetSizePolicy",
          "description": "The policy that specifies how the MIG creates its VMs to achieve the target\nsize."
        },
        "fingerprint": {
          "type": "string",
          "format": "byte",
          "description": "Fingerprint of this resource. This field may be used in optimistic locking.\nIt will be ignored when inserting an InstanceGroupManager. An up-to-date\nfingerprint must be provided in order to update the InstanceGroupManager,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an InstanceGroupManager."
        },
        "satisfiesPzs": {
          "description": "Output only. Reserved for future use.",
          "type": "boolean",
          "readOnly": true
        },
        "id": {
          "description": "Output only. A unique identifier for this resource type. The server\ngenerates this identifier.",
          "format": "uint64",
          "type": "string",
          "readOnly": true
        },
        "selfLink": {
          "description": "Output only. The URL for this managed instance group. The server defines\nthis URL.",
          "type": "string",
          "readOnly": true
        },
        "targetPools": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The URLs for all TargetPool resources to which instances in theinstanceGroup field are added. The target pools automatically\napply to all of the instances in the managed instance group."
        },
        "status": {
          "$ref": "InstanceGroupManagerStatus",
          "readOnly": true,
          "description": "Output only. The status of this managed instance group."
        },
        "kind": {
          "description": "Output only. The resource type, which is alwayscompute#instanceGroupManager for managed instance groups.",
          "readOnly": true,
          "type": "string",
          "default": "compute#instanceGroupManager"
        },
        "targetSuspendedSize": {
          "description": "The target number of suspended instances for this managed instance group.\nThis number changes when you: \n   \n   - Suspend instance using the suspendInstances\n   method or resume instances using the resumeInstances\n   method.\n   - Manually change the targetSuspendedSize using the update\n   method.",
          "type": "integer",
          "format": "int32"
        },
        "instanceGroup": {
          "type": "string",
          "description": "Output only. The URL of the Instance Group resource.",
          "readOnly": true
        },
        "currentActions": {
          "description": "Output only. The list of instance actions and the number of instances\nin this managed instance group that are scheduled for each of those\nactions.",
          "readOnly": true,
          "$ref": "InstanceGroupManagerActionsSummary"
        }
      }
    },
    "BackendServiceCustomMetric": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression\n`[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to EXTERNAL_MANAGED,INTERNAL_MANAGED INTERNAL_SELF_MANAGED."
        },
        "dryRun": {
          "type": "boolean",
          "description": "If true, the metric data is not used for load balancing."
        }
      },
      "id": "BackendServiceCustomMetric",
      "description": "Custom Metrics are used for WEIGHTED_ROUND_ROBIN\nlocality_lb_policy."
    },
    "StoragePoolListDisks": {
      "id": "StoragePoolListDisks",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.",
          "readOnly": true
        },
        "kind": {
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolListDisks for lists of disks in a\nstoragePool.",
          "default": "compute#storagePoolListDisks",
          "type": "string",
          "readOnly": true
        },
        "nextPageToken": {
          "readOnly": true,
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "items": {
          "type": "array",
          "description": "A list of StoragePoolDisk resources.",
          "items": {
            "$ref": "StoragePoolDisk"
          }
        },
        "warning": {
          "type": "object",
          "description": "Output only. [Output Only] Informational warning message.",
          "readOnly": true,
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            }
          }
        },
        "etag": {
          "type": "string"
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder",
          "type": "array"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "FirewallPoliciesScopedList": {
      "id": "FirewallPoliciesScopedList",
      "type": "object",
      "properties": {
        "firewallPolicies": {
          "items": {
            "$ref": "FirewallPolicy"
          },
          "type": "array",
          "description": "A list of firewall policies contained in this scope."
        },
        "warning": {
          "properties": {
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object",
          "description": "Informational warning which replaces the list of firewall policies when\nthe list is empty."
        }
      }
    },
    "InstanceGroupManagerAllInstancesConfig": {
      "type": "object",
      "id": "InstanceGroupManagerAllInstancesConfig",
      "properties": {
        "properties": {
          "$ref": "InstancePropertiesPatch",
          "description": "Properties to set on all instances in the group.\n\nYou can add or modify properties using theinstanceGroupManagers.patch orregionInstanceGroupManagers.patch. After settingallInstancesConfig on the group, you must update the group's\ninstances to apply the configuration. To apply the configuration, set the\ngroup's updatePolicy.type field to use proactive updates or\nuse the applyUpdatesToInstances method."
        }
      }
    },
    "UsableSubnetwork": {
      "description": "Subnetwork which the current user has compute.subnetworks.use permission on.",
      "type": "object",
      "properties": {
        "subnetwork": {
          "description": "Subnetwork URL.",
          "type": "string"
        },
        "network": {
          "type": "string",
          "description": "Network URL."
        },
        "purpose": {
          "enum": [
            "GLOBAL_MANAGED_PROXY",
            "INTERNAL_HTTPS_LOAD_BALANCER",
            "PEER_MIGRATION",
            "PRIVATE",
            "PRIVATE_NAT",
            "PRIVATE_RFC_1918",
            "PRIVATE_SERVICE_CONNECT",
            "REGIONAL_MANAGED_PROXY"
          ],
          "enumDescriptions": [
            "Subnet reserved for Global Envoy-based Load Balancing.",
            "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy\npurpose, please use REGIONAL_MANAGED_PROXY instead.",
            "Subnetwork will be used for Migration from one peered VPC to another.\n(a transient state of subnetwork\nwhile migrating resources from one project to another).",
            "Regular user created or automatically created subnet.",
            "Subnetwork used as source range for Private NAT Gateways.",
            "Regular user created or automatically created subnet.",
            "Subnetworks created for Private Service Connect in the producer network.",
            "Subnetwork used for Regional Envoy-based Load Balancing."
          ],
          "type": "string"
        },
        "role": {
          "enum": [
            "ACTIVE",
            "BACKUP"
          ],
          "description": "The role of subnetwork. Currently, this field is only used when\npurpose is set to GLOBAL_MANAGED_PROXY orREGIONAL_MANAGED_PROXY. The value can be set toACTIVE or BACKUP. An ACTIVE\nsubnetwork is one that is currently being used for Envoy-based load\nbalancers in a region. A BACKUP subnetwork is one that is\nready to be promoted to ACTIVE or is currently draining.\nThis field can be updated with a patch request.",
          "type": "string",
          "enumDescriptions": [
            "The ACTIVE subnet that is currently used.",
            "The BACKUP subnet that could be promoted to ACTIVE."
          ]
        },
        "secondaryIpRanges": {
          "description": "Secondary IP ranges.",
          "type": "array",
          "items": {
            "$ref": "UsableSubnetworkSecondaryRange"
          }
        },
        "stackType": {
          "type": "string",
          "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs\nin the subnet are assigned IPv4 addresses only. If set toIPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and\nIPv6 addresses. If not specified, IPV4_ONLY is used.\n\nThis field can be both set at resource creation time and updated usingpatch.",
          "enumDescriptions": [
            "New VMs in this subnet can have both IPv4 and IPv6 addresses.",
            "New VMs in this subnet will only be assigned IPv4 addresses.",
            "New VMs in this subnet will only be assigned IPv6 addresses."
          ],
          "enum": [
            "IPV4_IPV6",
            "IPV4_ONLY",
            "IPV6_ONLY"
          ]
        },
        "ipCidrRange": {
          "type": "string",
          "description": "The range of internal addresses that are owned by this subnetwork."
        },
        "externalIpv6Prefix": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] The external IPv6 address range that is assigned to this\nsubnetwork."
        },
        "internalIpv6Prefix": {
          "readOnly": true,
          "description": "Output only. [Output Only] The internal IPv6 address range that is assigned to this\nsubnetwork.",
          "type": "string"
        },
        "ipv6AccessType": {
          "enum": [
            "EXTERNAL",
            "INTERNAL"
          ],
          "enumDescriptions": [
            "VMs on this subnet will be assigned IPv6 addresses that are accessible\nvia the Internet, as well as the VPC network.",
            "VMs on this subnet will be assigned IPv6 addresses that are only\naccessible over the VPC network."
          ],
          "description": "The access type of IPv6 address this subnet holds. It's immutable and can\nonly be specified during creation or the first time the subnet is updated\ninto IPV4_IPV6 dual stack.",
          "type": "string"
        }
      },
      "id": "UsableSubnetwork"
    },
    "TargetHttpsProxy": {
      "properties": {
        "certificateMap": {
          "type": "string",
          "description": "URL of a certificate map that identifies a certificate map associated with\nthe given target proxy.\nThis field can only be set for Global external Application Load Balancer or\nClassic Application Load Balancer. For other products use Certificate\nManager Certificates instead.\n\nIf set, sslCertificates will be ignored.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}."
        },
        "httpKeepAliveTimeoutSec": {
          "description": "Specifies how long to keep a connection open, after completing a response,\nwhile there is no matching traffic (in seconds). If an HTTP keep-alive is\nnot specified, a default value (610 seconds) will be used.\n\nFor global external Application Load Balancers, the minimum allowed value\nis 5 seconds and the maximum allowed value is 1200 seconds.\n\nFor classic Application Load Balancers, this option is not supported.",
          "type": "integer",
          "format": "int32"
        },
        "serverTlsPolicy": {
          "type": "string",
          "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource\nthat describes how the proxy should authenticate inbound traffic.\n\n serverTlsPolicy only applies to a globalTargetHttpsProxy attached toglobalForwardingRules with theloadBalancingScheme set to INTERNAL_SELF_MANAGED\nor EXTERNAL orEXTERNAL_MANAGED or INTERNAL_MANAGED.\nIt also applies to a regional TargetHttpsProxy attached to\nregional forwardingRules with theloadBalancingScheme set to EXTERNAL_MANAGED orINTERNAL_MANAGED. For details whichServerTlsPolicy resources are accepted withINTERNAL_SELF_MANAGED and which with EXTERNAL,INTERNAL_MANAGED, EXTERNAL_MANAGEDloadBalancingScheme consult ServerTlsPolicy\ndocumentation.\n\n  If left blank, communications are not encrypted."
        },
        "sslCertificates": {
          "description": "URLs to SslCertificate resources that are used to authenticate\nconnections between users and the load balancer. At least one SSL\ncertificate must be specified. SslCertificates do not apply when the load\nbalancing scheme is set to INTERNAL_SELF_MANAGED.\n\nThe URLs should refer to a SSL Certificate resource or Certificate Manager\nCertificate resource. Mixing Classic Certificates and Certificate Manager\nCertificates is not allowed. Certificate Manager Certificates must include\nthe certificatemanager API namespace. Using Certificate Manager\nCertificates in this field is not supported by Global external Application\nLoad Balancer or Classic Application Load Balancer, use certificate_map\ninstead.\n\nCurrently, you may specify up to 15 Classic SSL Certificates or up to 100\nCertificate Manager Certificates.\n\nCertificate Manager Certificates accepted formats are:\n   \n   - //certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificates/{resourceName}.\n   - https://certificatemanager.googleapis.com/v1alpha1/projects/{project}/locations/{location}/certificates/{resourceName}.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tlsEarlyData": {
          "type": "string",
          "enumDescriptions": [
            "TLS 1.3 Early Data is not advertised, and any (invalid) attempts to send\nEarly Data will be rejected by closing the connection.",
            "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on\nrequests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE). This mode\ndoes not enforce any other limitations for requests with Early Data. The\napplication owner should validate that Early Data is acceptable for a\ngiven request path.",
            "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on\nrequests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE) without query\nparameters. Requests that send Early Data with non-idempotent HTTP\nmethods or with query parameters will be rejected with a HTTP 425.",
            "This enables TLS 1.3 Early Data for requests with any HTTP method\nincluding non-idempotent methods list POST. This mode does not enforce\nany other limitations. This may be valuable for gRPC use cases. However,\nwe do not recommend this method unless you have evaluated your security\nstance and mitigated the risk of replay attacks using other mechanisms."
          ],
          "description": "Specifies whether TLS 1.3 0-RTT Data (\"Early Data\") should be accepted\nfor this service. Early Data allows a TLS resumption handshake to include\nthe initial application payload (a HTTP request) alongside the handshake,\nreducing the effective round trips to \"zero\". This applies to TLS 1.3\nconnections over TCP (HTTP/2) as well as over UDP (QUIC/h3).\n\n\nThis can improve application performance, especially on networks where\ninterruptions may be common, such as on mobile.\n\n\nRequests with Early Data will have the \"Early-Data\" HTTP header set on\nthe request, with a value of \"1\", to allow the backend to determine whether\nEarly Data was included.\n\n\nNote: TLS Early Data may allow requests to be replayed, as the data is\nsent to the backend before the handshake has fully completed. Applications\nthat allow idempotent HTTP methods to make non-idempotent changes, such as\na GET request updating a database, should not accept Early Data on those\nrequests, and reject requests with the \"Early-Data: 1\" HTTP header by\nreturning a HTTP 425 (Too Early) status code, in order to remain RFC\ncompliant.\n\n\nThe default value is DISABLED.",
          "enum": [
            "DISABLED",
            "PERMISSIVE",
            "STRICT",
            "UNRESTRICTED"
          ]
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "kind": {
          "readOnly": true,
          "type": "string",
          "default": "compute#targetHttpsProxy",
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetHttpsProxy for target HTTPS proxies."
        },
        "sslPolicy": {
          "type": "string",
          "description": "URL of SslPolicy resource that will be associated with the TargetHttpsProxy\nresource. If not set, the TargetHttpsProxy resource has no\nSSL policy configured."
        },
        "urlMap": {
          "description": "A fully-qualified or valid partial URL to the UrlMap resource that defines\nthe mapping from URL to the BackendService. For example, the following are\nall valid URLs for specifying a URL map:\n   \n   - https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map \n   - projects/project/global/urlMaps/url-map \n   - global/urlMaps/url-map",
          "type": "string"
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "authorizationPolicy": {
          "description": "Optional. A URL referring to a networksecurity.AuthorizationPolicy resource\nthat describes how the proxy should authorize inbound traffic. If left\nblank, access will not be restricted by an authorization policy.\n\n Refer to the AuthorizationPolicy resource for additional\ndetails.\n\n authorizationPolicy only applies to a globalTargetHttpsProxy attached toglobalForwardingRules with theloadBalancingScheme set to INTERNAL_SELF_MANAGED.\n\n Note: This field currently has no impact.",
          "type": "string"
        },
        "proxyBind": {
          "description": "This field only applies when the forwarding rule that references this\ntarget proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED.\n\nWhen this field is set to true, Envoy proxies set up inbound\ntraffic interception and bind to the IP address and port specified in the\nforwarding rule. This is generally useful when using Traffic Director to\nconfigure Envoy as a gateway or middle proxy (in other words, not a\nsidecar proxy). The Envoy proxy listens for inbound requests and handles\nrequests when it receives them.\n\nThe default is false.",
          "type": "boolean"
        },
        "region": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the regional TargetHttpsProxy\nresides. This field is not applicable to global TargetHttpsProxies."
        },
        "id": {
          "type": "string",
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "fingerprint": {
          "type": "string",
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a TargetHttpsProxy. An up-to-date fingerprint must\nbe provided in order to patch the TargetHttpsProxy; otherwise, the request\nwill fail with error 412 conditionNotMet. To see the latest\nfingerprint, make a get() request to retrieve the\nTargetHttpsProxy.",
          "format": "byte"
        },
        "quicOverride": {
          "enum": [
            "DISABLE",
            "ENABLE",
            "NONE"
          ],
          "enumDescriptions": [
            "The load balancer will not attempt to negotiate QUIC with clients.",
            "The load balancer will attempt to negotiate QUIC with clients.",
            "No overrides to the default QUIC policy. This option is implicit if\nno QUIC override has been specified in the request."
          ],
          "description": "Specifies the QUIC override policy for this TargetHttpsProxy resource. This\nsetting determines whether the load balancer attempts to negotiate QUIC\nwith clients.\nYou can specify NONE, ENABLE, orDISABLE.\n   \n   - When quic-override is set to NONE,\n   Google manages whether QUIC is used.\n   - When quic-override is set to ENABLE, the\n   load balancer uses QUIC when possible.\n   - When quic-override is set to DISABLE, the\n   load balancer doesn't use QUIC.\n   - If the quic-override flag is not specified,NONE is implied.",
          "type": "string"
        },
        "creationTimestamp": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format."
        }
      },
      "id": "TargetHttpsProxy",
      "description": "Represents a Target HTTPS Proxy resource.\n\nGoogle Compute Engine has two Target HTTPS Proxy resources:\n\n* [Global](/compute/docs/reference/rest/v1/targetHttpsProxies)\n* [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies)\n\nA target HTTPS proxy is a component of Google Cloud HTTPS load balancers.\n\n* targetHttpsProxies are used by global external Application Load Balancers,\n  classic Application Load Balancers, cross-region internal Application Load\n  Balancers, and Traffic Director.\n* regionTargetHttpsProxies are used by regional internal Application Load\n  Balancers and regional external Application Load Balancers.\n\nForwarding rules reference a target HTTPS proxy, and the target proxy\nthen references a URL map. For more information, readUsing Target Proxies\nand \nForwarding rule concepts.",
      "type": "object"
    },
    "ImageView": {
      "description": "Represents a read-only view of a global Image resource.",
      "properties": {
        "image": {
          "description": "The Image resource.",
          "$ref": "Image"
        }
      },
      "type": "object",
      "id": "ImageView"
    },
    "NetworksRemovePeeringRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the peering, which should conform to RFC1035."
        }
      },
      "id": "NetworksRemovePeeringRequest"
    },
    "ManagedInstanceInstanceHealth": {
      "properties": {
        "detailedHealthState": {
          "enum": [
            "DRAINING",
            "HEALTHY",
            "TIMEOUT",
            "UNHEALTHY",
            "UNKNOWN"
          ],
          "description": "Output only. [Output Only] The current detailed instance health state.",
          "enumDescriptions": [
            "The instance is being drained. The existing connections to the instance\nhave time to complete, but the new ones are being refused.",
            "The instance is reachable i.e. a connection to the application health\nchecking endpoint can be established, and conforms to the requirements\ndefined by the health check.",
            "The instance is unreachable i.e. a connection to the application health\nchecking endpoint cannot be established, or the server does not respond\nwithin the specified timeout.",
            "The instance is reachable, but does not conform to the requirements\ndefined by the health check.",
            "The health checking system is aware of the instance but its health is\nnot known at the moment."
          ],
          "type": "string",
          "readOnly": true
        },
        "healthCheck": {
          "description": "Output only. [Output Only] The URL for the health check that verifies whether the\ninstance is healthy.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "ManagedInstanceInstanceHealth",
      "type": "object"
    },
    "InterconnectDiagnostics": {
      "id": "InterconnectDiagnostics",
      "properties": {
        "bundleOperationalStatus": {
          "description": "The operational status of the bundle interface.",
          "enum": [
            "BUNDLE_OPERATIONAL_STATUS_DOWN",
            "BUNDLE_OPERATIONAL_STATUS_UP"
          ],
          "type": "string",
          "enumDescriptions": [
            "If bundleAggregationType is LACP: LACP is not established and/or all\nlinks in the bundle have DOWN operational status. If\nbundleAggregationType is STATIC: one or more links in the bundle has\nDOWN operational status.",
            "If bundleAggregationType is LACP: LACP is established and at least one\nlink in the bundle has UP operational status. If bundleAggregationType\nis STATIC: all links in the bundle (typically just one) have UP\noperational status."
          ]
        },
        "macAddress": {
          "description": "The MAC address of the Interconnect's bundle interface.",
          "type": "string"
        },
        "links": {
          "description": "A list of InterconnectDiagnostics.LinkStatus objects,\ndescribing the status for each link on the Interconnect.",
          "type": "array",
          "items": {
            "$ref": "InterconnectDiagnosticsLinkStatus"
          }
        },
        "arpCaches": {
          "items": {
            "$ref": "InterconnectDiagnosticsARPEntry"
          },
          "type": "array",
          "description": "A list of InterconnectDiagnostics.ARPEntry objects,\ndescribing individual neighbors currently seen by the Google router in\nthe ARP cache for the Interconnect.\nThis will be empty when the Interconnect is not bundled."
        },
        "bundleAggregationType": {
          "description": "The aggregation type of the bundle interface.",
          "enumDescriptions": [
            "LACP is enabled.",
            "LACP is disabled."
          ],
          "type": "string",
          "enum": [
            "BUNDLE_AGGREGATION_TYPE_LACP",
            "BUNDLE_AGGREGATION_TYPE_STATIC"
          ]
        }
      },
      "type": "object",
      "description": "Diagnostics information about the Interconnect connection, which contains\ndetailed and current technical information about Google's side of the\nconnection."
    },
    "InstanceGroupManagerResourcePolicies": {
      "properties": {
        "workloadPolicy": {
          "type": "string",
          "description": "The URL of the workload policy that is specified for this managed\ninstance group.\nIt can be a full or partial URL. For example, the following are\nall valid URLs to a workload policy: \n   \n   \n      - https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy\n      - projects/project/regions/region/resourcePolicies/resourcePolicy\n      - regions/region/resourcePolicies/resourcePolicy"
        }
      },
      "id": "InstanceGroupManagerResourcePolicies",
      "type": "object"
    },
    "RolloutPlanWaveSelectorResourceHierarchySelector": {
      "id": "RolloutPlanWaveSelectorResourceHierarchySelector",
      "properties": {
        "includedFolders": {
          "description": "Optional. Format: \"folders/{folder_id}\"",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "includedProjects": {
          "description": "Optional. Format: \"projects/{project_id}\"",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "includedOrganizations": {
          "description": "Optional. Format: \"organizations/{organization_id}\"",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Roll out to resources by Cloud Resource Manager resource hierarchy\nnodes such as projects, folders, orgs.",
      "type": "object"
    },
    "InstancesSetMachineTypeRequest": {
      "properties": {
        "machineType": {
          "type": "string",
          "description": "Full or partial URL of the machine type resource. See Machine Types for a full list of\nmachine types. For example:zones/us-central1-f/machineTypes/n1-standard-1"
        }
      },
      "id": "InstancesSetMachineTypeRequest",
      "type": "object"
    },
    "VpnGatewaysGetStatusResponse": {
      "id": "VpnGatewaysGetStatusResponse",
      "type": "object",
      "properties": {
        "result": {
          "$ref": "VpnGatewayStatus"
        }
      }
    },
    "FixedOrPercent": {
      "type": "object",
      "id": "FixedOrPercent",
      "description": "Encapsulates numeric value that can be either absolute or relative.",
      "properties": {
        "calculated": {
          "description": "Output only. Absolute value of VM instances calculated based on the specific mode.\n\n   \n   \n    - If the value is fixed, then the calculated\n     value is equal to the fixed value.\n    - If the value is a percent, then the\n    calculated\n     value is percent/100 * targetSize. For example,\n     the calculated value of a 80% of a managed instance group\n     with 150 instances would be (80/100 * 150) = 120 VM instances. If there\n     is a remainder, the number is rounded.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "percent": {
          "type": "integer",
          "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For\nexample, specify 80 for 80%.",
          "format": "int32"
        },
        "fixed": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies a fixed number of VM instances. This must be a positive integer."
        }
      }
    },
    "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig": {
      "type": "object",
      "description": "Configurations to specifc granular traffic units processed by\nAdaptive Protection.",
      "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig",
      "properties": {
        "enableEachUniqueValue": {
          "type": "boolean",
          "description": "If enabled, traffic matching each unique value for the specified\ntype constitutes a separate traffic unit.\nIt can only be set to true if `value` is empty."
        },
        "type": {
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "HTTP_HEADER_HOST",
            "HTTP_PATH",
            "UNSPECIFIED_TYPE"
          ],
          "type": "string",
          "description": "Type of this configuration."
        },
        "value": {
          "type": "string",
          "description": "Requests that match this value constitute a granular traffic unit."
        }
      }
    },
    "OperationsScopedList": {
      "type": "object",
      "properties": {
        "warning": {
          "description": "[Output Only] Informational warning which replaces the list of operations\nwhen the list is empty.",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "type": "object"
        },
        "operations": {
          "items": {
            "$ref": "Operation"
          },
          "type": "array",
          "description": "[Output Only] A list of operations contained in this scope."
        }
      },
      "id": "OperationsScopedList"
    },
    "SubnetworkSecondaryRange": {
      "description": "Represents a secondary IP range of a subnetwork.",
      "id": "SubnetworkSecondaryRange",
      "properties": {
        "rangeName": {
          "description": "The name associated with this subnetwork secondary range, used when adding\nan alias IP/IPv6 range to a VM instance.\nThe name must be 1-63 characters long, and comply withRFC1035.\nThe name must be unique within the subnetwork.",
          "type": "string"
        },
        "ipCidrRange": {
          "description": "The range of IP addresses belonging to this subnetwork secondary range.\nProvide this property when you create the subnetwork. Ranges must be\nunique and non-overlapping with all primary and secondary IP ranges\nwithin a network. Both IPv4 and IPv6 ranges are supported. For IPv4,\nthe range can be any range listed in theValid\nranges list.\n\nFor IPv6:\nThe range must have a /64 prefix length.\nThe range must be omitted, for auto-allocation from Google-defined ULA\nIPv6 range.\nFor BYOGUA internal IPv6 secondary range, the range may be specified\nalong with the `ipCollection` field.\nIf an `ipCollection` is specified, the requested ip_cidr_range must lie\nwithin the range of the PDP referenced by the `ipCollection` field for\nallocation.\nIf `ipCollection` field is specified, but ip_cidr_range is not,\nthe range is auto-allocated from the PDP referenced by the `ipCollection`\nfield.",
          "type": "string"
        },
        "reservedInternalRange": {
          "description": "The URL of the reserved internal range. Only IPv4 is supported.",
          "type": "string"
        },
        "ipCollection": {
          "type": "string",
          "description": "Reference to a Public Delegated Prefix (PDP) for BYOIP.\nThis field should be specified for configuring BYOGUA internal IPv6\nsecondary range.\nWhen specified along with the ip_cidr_range, the ip_cidr_range must lie\nwithin the PDP referenced by the `ipCollection` field.\nWhen specified without the ip_cidr_range, the range is auto-allocated\nfrom the PDP referenced by the `ipCollection` field."
        },
        "ipVersion": {
          "enum": [
            "IPV4",
            "IPV6",
            "IP_VERSION_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "",
            "",
            "Treated as IPV4 for backward-compatibility."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "InterconnectRemoteLocationConstraints": {
      "id": "InterconnectRemoteLocationConstraints",
      "properties": {
        "portPairRemoteLocation": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Port pair remote location constraints, which can take one\nof the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION,\nPORT_PAIR_MATCHING_REMOTE_LOCATION.\n\nGoogle Cloud API refers only to individual ports, but the UI uses this\nfield when ordering a pair of ports, to prevent users from accidentally\nordering something that is incompatible with their cloud provider.\nSpecifically, when ordering a redundant pair of Cross-Cloud Interconnect\nports, and one of them uses a remote location with\nportPairMatchingRemoteLocation set to matching, the UI requires that\nboth ports use the same remote location.",
          "enum": [
            "PORT_PAIR_MATCHING_REMOTE_LOCATION",
            "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION"
          ],
          "enumDescriptions": [
            "If PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider\nallocates ports in pairs, and the user should choose the same remote\nlocation for both ports.",
            "If PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision\na redundant pair of Cross-Cloud Interconnects using two different\nremote locations in the same city."
          ]
        },
        "portPairVlan": {
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "If PORT_PAIR_MATCHING_VLAN, the Interconnect for this attachment is\npart of a pair of ports that should have matching VLAN allocations.\nThis occurs with Cross-Cloud Interconnect to Azure remote locations.\nWhile GCP's API does not explicitly group pairs of ports, the UI uses\nthis field to ensure matching VLAN ids when configuring a redundant\nVLAN pair.",
            "PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint."
          ],
          "description": "Output only. [Output Only] Port pair VLAN constraints, which can take one of the\nfollowing values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN",
          "enum": [
            "PORT_PAIR_MATCHING_VLAN",
            "PORT_PAIR_UNCONSTRAINED_VLAN"
          ]
        },
        "subnetLengthRange": {
          "readOnly": true,
          "description": "Output only. [Output Only]\n\n[min-length, max-length] \n\nThe minimum and maximum value (inclusive) for the IPv4 subnet\nlength.\n\n For example, an  interconnectRemoteLocation for Azure has {min: 30,\nmax:\n30} because Azure requires /30 subnets. \n\nThis range specifies the values supported by both cloud providers.\nInterconnect currently supports /29 and /30 IPv4 subnet lengths. If a\nremote cloud has no constraint on IPv4 subnet length, the range would\nthus be {min: 29, max: 30}.",
          "$ref": "InterconnectRemoteLocationConstraintsSubnetLengthRange"
        }
      },
      "type": "object"
    },
    "UrlRewrite": {
      "id": "UrlRewrite",
      "description": "The spec for modifying the path before sending the request to the matched\nbackend service.",
      "properties": {
        "hostRewrite": {
          "description": "Before forwarding the request to the selected service, the request's\nhost header is replaced with contents of hostRewrite.\n\nThe value must be from 1 to 255 characters.",
          "type": "string"
        },
        "pathTemplateRewrite": {
          "type": "string",
          "description": "If specified, the pattern rewrites the URL path (based on the :path\nheader) using the HTTP template syntax. \n\nA corresponding\npath_template_match must be specified. Any template variables must exist in\nthe path_template_match field. \n   \n   \n      - -At least one variable must be specified in the path_template_match\n      field \n   - You can omit variables from the rewritten URL\n      - The * and ** operators cannot be matched\n      unless they have a corresponding variable name - e.g.\n      {format=*} or {var=**}.\n\nFor example, a path_template_match of /static/{format=**}\ncould be rewritten as /static/content/{format} to prefix/content to the URL. Variables can also be re-ordered in a\nrewrite, so that /{country}/{format}/{suffix=**} can be\nrewritten as /content/{format}/{country}/{suffix}. \n\nAt least\none non-empty routeRules[].matchRules[].path_template_match is\nrequired. \n\nOnly one of path_prefix_rewrite orpath_template_rewrite may be specified."
        },
        "regexRewrite": {
          "$ref": "RegexRewrite",
          "description": "The regex rewrite to be applied to the URL. Only one ofpathPrefixRewrite, pathTemplateRewrite, orregexRewrite may be specified."
        },
        "pathPrefixRewrite": {
          "type": "string",
          "description": "Before forwarding the request to the selected backend service, the\nmatching portion of the request's path is replaced bypathPrefixRewrite.\n\nThe value must be from 1 to 1024 characters."
        }
      },
      "type": "object"
    },
    "SslCertificate": {
      "id": "SslCertificate",
      "description": "Represents an SSL certificate resource.\n\nGoogle Compute Engine has two SSL certificate resources:\n\n* [Global](/compute/docs/reference/rest/v1/sslCertificates)\n* [Regional](/compute/docs/reference/rest/v1/regionSslCertificates)\n\n\nThe global SSL certificates (sslCertificates) are used by:\n   \n   - Global external Application Load Balancers\n   - Classic Application Load Balancers\n   - Proxy Network Load Balancers (with target SSL proxies)\n\n\n\nThe regional SSL certificates (regionSslCertificates) are used\nby:\n   \n   - Regional external Application Load Balancers\n   - Regional internal Application Load Balancers\n\n\n\nOptionally, certificate file contents that you upload can contain a set of up\nto five PEM-encoded certificates.\nThe API call creates an object (sslCertificate) that holds this data.\nYou can use SSL keys and certificates to secure connections to a load\nbalancer.\nFor more information, read \nCreating and using SSL certificates,SSL certificates\nquotas and limits, and\nTroubleshooting SSL certificates.",
      "properties": {
        "managed": {
          "$ref": "SslCertificateManagedSslCertificate",
          "description": "Configuration and status of a managed SSL certificate."
        },
        "type": {
          "enum": [
            "MANAGED",
            "SELF_MANAGED",
            "TYPE_UNSPECIFIED"
          ],
          "description": "(Optional) Specifies the type of SSL certificate, either \"SELF_MANAGED\" or\n\"MANAGED\". If not specified, the certificate is self-managed and the fieldscertificate and private_key are used.",
          "type": "string",
          "enumDescriptions": [
            "Google-managed SSLCertificate.",
            "Certificate uploaded by user.",
            ""
          ]
        },
        "expireTime": {
          "description": "Output only. [Output Only] Expire time of the certificate. RFC3339",
          "readOnly": true,
          "type": "string"
        },
        "creationTimestamp": {
          "type": "string",
          "description": "[Output Only] Creation timestamp inRFC3339\ntext format."
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#sslCertificate for SSL certificates.",
          "type": "string",
          "default": "compute#sslCertificate",
          "readOnly": true
        },
        "certificate": {
          "type": "string",
          "description": "A value read into memory from a certificate file. The certificate file must\nbe in PEM format. The certificate chain must be no greater than 5 certs\nlong. The chain must include at least one intermediate cert."
        },
        "region": {
          "readOnly": true,
          "description": "Output only. [Output Only] URL of the region where the regional SSL Certificate\nresides. This field is not applicable to global SSL Certificate.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource."
        },
        "selfManaged": {
          "$ref": "SslCertificateSelfManagedSslCertificate",
          "description": "Configuration and status of a self-managed SSL certificate."
        },
        "id": {
          "format": "uint64",
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "privateKey": {
          "type": "string",
          "description": "A value read into memory from a write-only private key file. The private\nkey file must be in PEM format. For security, only insert\nrequests include this field."
        },
        "subjectAlternativeNames": {
          "description": "Output only. [Output Only] Domains associated with the certificate via Subject\nAlternative Name.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "selfLink": {
          "type": "string",
          "description": "[Output only] Server-defined URL for the resource."
        }
      },
      "type": "object"
    },
    "NetworkEndpointGroupCloudFunction": {
      "properties": {
        "urlMask": {
          "type": "string",
          "description": "An URL\nmask is one of the main components of the Cloud Function.\n\nA template to parse function field from a request URL. URL\nmask allows for routing to multiple Cloud Functions without having to\ncreate multiple Network Endpoint Groups and backend services.\n\nFor example, request URLs mydomain.com/function1 andmydomain.com/function2 can be backed by the same\nServerless NEG with URL mask /\u003cfunction\u003e. The URL\nmask will parse them to { function = \"function1\" } and{ function = \"function2\" } respectively."
        },
        "function": {
          "description": "A user-defined name of the Cloud Function.\n\nThe function name is case-sensitive and must be 1-63\ncharacters long.\n\nExample value: func1.",
          "type": "string"
        }
      },
      "id": "NetworkEndpointGroupCloudFunction",
      "type": "object",
      "description": "Configuration for a Cloud Function network endpoint group (NEG).\nThe function must be provided explicitly or in the URL mask.\n\nNote: Cloud Function must be in the same project and located in the same\nregion as the Serverless NEG."
    },
    "NetworksCancelRequestRemovePeeringRequest": {
      "properties": {
        "name": {
          "description": "Name of the peering, which should conform to RFC1035.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "NetworksCancelRequestRemovePeeringRequest"
    },
    "NetworkEndpointGroupAggregatedList": {
      "type": "object",
      "id": "NetworkEndpointGroupAggregatedList",
      "properties": {
        "kind": {
          "description": "Output only. [Output Only] The resource type, which is alwayscompute#networkEndpointGroupAggregatedList for aggregated\nlists of network endpoint groups.",
          "type": "string",
          "readOnly": true,
          "default": "compute#networkEndpointGroupAggregatedList"
        },
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            }
          },
          "type": "object",
          "description": "[Output Only] Informational warning message."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "items": {
          "description": "A list of NetworkEndpointGroupsScopedList resources.",
          "additionalProperties": {
            "description": "The name of the scope that contains this set of network endpoint groups.",
            "$ref": "NetworkEndpointGroupsScopedList"
          },
          "type": "object"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "readOnly": true,
          "type": "string"
        },
        "unreachables": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. [Output Only] Unreachable resources.",
          "type": "array"
        }
      }
    },
    "MachineType": {
      "description": "Represents a Machine Type resource.\n\nYou can use specific machine types for your VM instances based on performance\nand pricing requirements. For more information, readMachine Types.",
      "type": "object",
      "id": "MachineType",
      "properties": {
        "maximumPersistentDisksSizeGb": {
          "format": "int64",
          "type": "string",
          "description": "[Output Only] Maximum total persistent disks size (GB) allowed."
        },
        "creationTimestamp": {
          "description": "[Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "[Output Only] An optional textual description of the resource."
        },
        "name": {
          "description": "[Output Only] Name of the resource.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string"
        },
        "architecture": {
          "enumDescriptions": [
            "Default value indicating Architecture is not set.",
            "Machines with architecture ARM64",
            "Machines with architecture X86_64"
          ],
          "description": "[Output Only] The architecture of the machine type.",
          "enum": [
            "ARCHITECTURE_UNSPECIFIED",
            "ARM64",
            "X86_64"
          ],
          "type": "string"
        },
        "guestCpus": {
          "description": "[Output Only] The number of virtual CPUs that are available to the\ninstance.",
          "type": "integer",
          "format": "int32"
        },
        "maximumPersistentDisks": {
          "format": "int32",
          "description": "[Output Only] Maximum persistent disks allowed.",
          "type": "integer"
        },
        "deprecated": {
          "description": "[Output Only] The deprecation status associated with this machine type.\nOnly applicable if the machine type is unavailable.",
          "$ref": "DeprecationStatus"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "memoryMb": {
          "type": "integer",
          "format": "int32",
          "description": "[Output Only] The amount of physical memory available to the instance,\ndefined in MB."
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "default": "compute#machineType",
          "description": "Output only. [Output Only] The type of the resource. Alwayscompute#machineType for machine types."
        },
        "bundledLocalSsds": {
          "description": "[Output Only] The configuration of bundled local SSD for the machine type.",
          "$ref": "BundledLocalSsds"
        },
        "accelerators": {
          "type": "array",
          "items": {
            "properties": {
              "guestAcceleratorCount": {
                "format": "int32",
                "description": "Number of accelerator cards exposed to the guest.",
                "type": "integer"
              },
              "guestAcceleratorType": {
                "description": "The accelerator type resource name, not a full URL, e.g.nvidia-tesla-t4.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "description": "[Output Only] A list of accelerator configurations assigned to this\nmachine type."
        },
        "isSharedCpu": {
          "type": "boolean",
          "description": "[Output Only] Whether this machine type has a shared CPU. SeeShared-core machine\ntypes for more information."
        },
        "zone": {
          "description": "[Output Only] The name of the zone where the machine type resides,\nsuch as us-central1-a.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64"
        },
        "imageSpaceGb": {
          "format": "int32",
          "type": "integer",
          "description": "[Deprecated] This property is deprecated and will never be populated with\nany relevant values."
        }
      }
    },
    "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection": {
      "properties": {
        "disks": {
          "type": "array",
          "description": "List of disks to be attached to the instances created from this\nselection.",
          "items": {
            "$ref": "AttachedDisk"
          }
        },
        "machineTypes": {
          "type": "array",
          "description": "Full machine-type names, e.g. \"n1-standard-16\".",
          "items": {
            "type": "string"
          }
        },
        "minCpuPlatform": {
          "description": "Name of the minimum CPU platform to be used by this instance selection.\ne.g. 'Intel Ice Lake'.",
          "type": "string"
        },
        "rank": {
          "format": "int32",
          "type": "integer",
          "description": "Preference of this instance selection. Lower number means higher\npreference. MIG will first try to create a VM based on the machine-type\nwith lowest rank and fallback to next rank based on availability.\nMachine types and instance selections with the same rank have the same\npreference."
        }
      },
      "id": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection",
      "type": "object"
    },
    "RegionDisksRemoveResourcePoliciesRequest": {
      "id": "RegionDisksRemoveResourcePoliciesRequest",
      "properties": {
        "resourcePolicies": {
          "type": "array",
          "description": "Resource policies to be removed from this disk.",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": {
      "type": "object",
      "description": "The configuration for a custom policy implemented by the user and\ndeployed with the client.",
      "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy",
      "properties": {
        "data": {
          "type": "string",
          "description": "An optional, arbitrary JSON object with configuration data, understood\nby a locally installed custom policy implementation."
        },
        "name": {
          "description": "Identifies the custom policy.\n\nThe value should match the name of a custom implementation registered\non the gRPC clients. It should follow protocol buffer message naming\nconventions and include the full path (for example,\nmyorg.CustomLbPolicy). The maximum length is 256 characters.\n\nDo not specify the same custom policy more than once for a\nbackend. If you do, the configuration is rejected.\n\nFor an example of how to use this field, seeUse\na custom policy.",
          "type": "string"
        }
      }
    },
    "FirewallPoliciesListAssociationsResponse": {
      "type": "object",
      "properties": {
        "kind": {
          "default": "compute#firewallPoliciesListAssociationsResponse",
          "description": "Output only. [Output Only] Type of firewallPolicy associations. Alwayscompute#FirewallPoliciesListAssociations for lists of\nfirewallPolicy associations.",
          "type": "string",
          "readOnly": true
        },
        "associations": {
          "items": {
            "$ref": "FirewallPolicyAssociation"
          },
          "description": "A list of associations.",
          "type": "array"
        }
      },
      "id": "FirewallPoliciesListAssociationsResponse"
    },
    "FirewallPolicyRuleSecureTag": {
      "properties": {
        "name": {
          "description": "Name of the secure tag, created with TagManager's TagValue API.",
          "type": "string",
          "pattern": "tagValues/[0-9]+"
        },
        "state": {
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "",
            ""
          ],
          "description": "Output only. [Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.",
          "enum": [
            "EFFECTIVE",
            "INEFFECTIVE"
          ]
        }
      },
      "id": "FirewallPolicyRuleSecureTag",
      "type": "object"
    },
    "InterconnectAttachmentParams": {
      "id": "InterconnectAttachmentParams",
      "description": "Additional interconnect attachment parameters.",
      "properties": {
        "resourceManagerTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID & namespaced format is not supported. For\n  instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n  {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid."
        }
      },
      "type": "object"
    },
    "TargetHttpProxyAggregatedList": {
      "properties": {
        "items": {
          "type": "object",
          "additionalProperties": {
            "$ref": "TargetHttpProxiesScopedList",
            "description": "Name of the scope containing this set of TargetHttpProxies."
          },
          "description": "A list of TargetHttpProxiesScopedList resources."
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "kind": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetHttpProxyAggregatedList for lists of Target HTTP\nProxies.",
          "default": "compute#targetHttpProxyAggregatedList"
        },
        "unreachables": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        }
      },
      "id": "TargetHttpProxyAggregatedList",
      "type": "object"
    },
    "SecurityPolicyDdosProtectionConfig": {
      "id": "SecurityPolicyDdosProtectionConfig",
      "type": "object",
      "properties": {
        "ddosImpactedBaselineThreshold": {
          "type": "number",
          "description": "DDoS Protection for Network Load Balancers (and VMs with public IPs)\nbuilds DDoS mitigations that minimize collateral damage. It quantifies\nthis as the fraction of a non-abuse baseline that's inadvertently\nblocked.\n\nRules whose collateral damage exceeds ddosImpactedBaselineThreshold will\nnot be deployed. Using a lower value will prioritize keeping collateral\ndamage low, possibly at the cost of its effectiveness in rate limiting\nsome or all of the attack. It should typically be unset, so Advanced DDoS\n(and Adaptive Protection) uses the best mitigation it can find. Setting\nthe threshold is advised if there are logs for false positive detections\nwith high collateral damage, and will cause Advanced DDoS to attempt to\nfind a less aggressive rule that satisfies the constraint. If a suitable\nrule cannot be found, the system falls back to either no mitigation for\nsmaller attacks or broader network throttles for larger ones.",
          "format": "float"
        },
        "ddosProtection": {
          "enum": [
            "ADVANCED",
            "ADVANCED_PREVIEW",
            "STANDARD"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "ddosAdaptiveProtection": {
          "enum": [
            "DDOS_ADAPTIVE_PROTECTION_UNSPECIFIED",
            "DISABLED",
            "ENABLED",
            "PREVIEW",
            "UNSPECIFIED_ADAPTIVE_PROTECTION"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true
          ],
          "type": "string"
        }
      }
    },
    "VmEndpointNatMappings": {
      "description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC).",
      "properties": {
        "instanceName": {
          "description": "Output only. Name of the VM instance which the endpoint belongs to",
          "readOnly": true,
          "type": "string"
        },
        "interfaceNatMappings": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "VmEndpointNatMappingsInterfaceNatMappings"
          }
        }
      },
      "type": "object",
      "id": "VmEndpointNatMappings"
    },
    "InterconnectAttachmentL2Forwarding": {
      "properties": {
        "geneveHeader": {
          "description": "Optional. It represents the structure of a Geneve (Generic Network\nVirtualization Encapsulation) header, as defined in RFC8926. It encapsulates packets from various\nprotocols (e.g., Ethernet, IPv4, IPv6) for use in network virtualization\nenvironments.",
          "$ref": "InterconnectAttachmentL2ForwardingGeneveHeader"
        },
        "applianceMappings": {
          "additionalProperties": {
            "$ref": "InterconnectAttachmentL2ForwardingApplianceMapping"
          },
          "description": "Optional. A map of VLAN tags to appliances and optional inner mapping\nrules. If VLANs are not explicitly mapped to any appliance, the\ndefaultApplianceIpAddress is used.\n\nEach VLAN tag can be a single number or a range of numbers in the range\nof 1 to 4094, e.g., \"1\" or \"4001-4094\". Non-empty and non-overlapping\nVLAN tag ranges are enforced, and violating operations will be rejected.\n\nThe VLAN tags in the Ethernet header must use an ethertype value of\n0x88A8 or 0x8100.",
          "type": "object"
        },
        "network": {
          "description": "Required. Resource URL of the network to which this attachment belongs.",
          "type": "string"
        },
        "defaultApplianceIpAddress": {
          "description": "Optional. A single IPv4 or IPv6 address used as the default destination\nIP when there is no VLAN mapping result found.\n\nUnset field (null-value) indicates the unmatched packet should be\ndropped.",
          "type": "string"
        },
        "tunnelEndpointIpAddress": {
          "description": "Required. A single IPv4 or IPv6 address. This address will be used as the\nsource IP address for packets sent to the appliances, and must be used as\nthe destination IP address for packets that should be sent out through\nthis attachment.",
          "type": "string"
        }
      },
      "id": "InterconnectAttachmentL2Forwarding",
      "description": "L2 Interconnect Attachment related configuration.",
      "type": "object"
    },
    "UrlMapValidationResult": {
      "type": "object",
      "properties": {
        "testPassed": {
          "description": "If successfully loaded, this field indicates whether the test passed.\nIf false, 'testFailures's indicate the reason of failure.",
          "type": "boolean"
        },
        "testFailures": {
          "items": {
            "$ref": "TestFailure"
          },
          "type": "array"
        },
        "loadSucceeded": {
          "description": "Whether the given UrlMap can be successfully loaded.\nIf false, 'loadErrors' indicates the reasons.",
          "type": "boolean"
        },
        "loadErrors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Message representing the validation result for a UrlMap.",
      "id": "UrlMapValidationResult"
    },
    "TargetHttpsProxiesSetCertificateMapRequest": {
      "properties": {
        "certificateMap": {
          "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}.",
          "type": "string"
        }
      },
      "id": "TargetHttpsProxiesSetCertificateMapRequest",
      "type": "object"
    },
    "NetworkEndpointWithHealthStatus": {
      "type": "object",
      "properties": {
        "networkEndpoint": {
          "readOnly": true,
          "$ref": "NetworkEndpoint",
          "description": "Output only. [Output only] The network endpoint."
        },
        "healths": {
          "description": "Output only. [Output only] The health status of network endpoint.\n\nOptional. Displayed only if the network endpoint has centralized health\nchecking configured.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "HealthStatusForNetworkEndpoint"
          }
        }
      },
      "id": "NetworkEndpointWithHealthStatus"
    },
    "BackendBucketsScopedList": {
      "id": "BackendBucketsScopedList",
      "type": "object",
      "properties": {
        "backendBuckets": {
          "description": "A list of BackendBuckets contained in this scope.",
          "type": "array",
          "items": {
            "$ref": "BackendBucket"
          }
        },
        "warning": {
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty.",
          "properties": {
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string"
            }
          },
          "type": "object"
        }
      }
    },
    "HttpFaultInjection": {
      "description": "The specification for fault injection introduced into traffic to test\nthe resiliency of clients to backend service failure. As part of fault\ninjection, when clients send requests to a backend service, delays can be\nintroduced by the load balancer on a percentage of requests before sending\nthose request to the backend service. Similarly requests from clients can be\naborted by the load balancer for a percentage of requests.",
      "properties": {
        "delay": {
          "$ref": "HttpFaultDelay",
          "description": "The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service."
        },
        "abort": {
          "description": "The specification for how client requests are aborted as part of fault\ninjection.",
          "$ref": "HttpFaultAbort"
        }
      },
      "type": "object",
      "id": "HttpFaultInjection"
    },
    "RouterNatRuleAction": {
      "type": "object",
      "id": "RouterNatRuleAction",
      "properties": {
        "sourceNatDrainRanges": {
          "description": "A list of URLs of subnetworks representing source ranges to be\ndrained. This is only supported on patch/update, and these\nsubnetworks must have previously been used as active ranges in this\nNAT Rule.\nThis field is used for private NAT.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "sourceNatActiveRanges": {
          "description": "A list of URLs of the subnetworks used as source ranges for this\nNAT Rule. These subnetworks must have purpose set to PRIVATE_NAT.\nThis field is used for private NAT.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sourceNatActiveIps": {
          "items": {
            "type": "string"
          },
          "description": "A list of URLs of the IP resources used for this NAT rule. These IP\naddresses must be valid static external IP addresses assigned to the\nproject.\nThis field is used for public NAT.",
          "type": "array"
        },
        "sourceNatDrainIps": {
          "description": "A list of URLs of the IP resources to be drained. These IPs\nmust be valid static external IPs that have been assigned to the NAT.\nThese IPs should be used for updating/patching a NAT rule only.\nThis field is used for public NAT.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "TargetTcpProxiesScopedList": {
      "type": "object",
      "id": "TargetTcpProxiesScopedList",
      "properties": {
        "warning": {
          "type": "object",
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty.",
          "properties": {
            "data": {
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          }
        },
        "targetTcpProxies": {
          "description": "A list of TargetTcpProxies contained in this scope.",
          "items": {
            "$ref": "TargetTcpProxy"
          },
          "type": "array"
        }
      }
    },
    "InstanceConsumptionData": {
      "type": "object",
      "properties": {
        "instance": {
          "readOnly": true,
          "description": "Output only. Server-defined URL for the instance.",
          "type": "string"
        },
        "consumptionInfo": {
          "description": "Output only. Resources consumed by the instance.",
          "$ref": "InstanceConsumptionInfo",
          "readOnly": true
        }
      },
      "id": "InstanceConsumptionData"
    },
    "AutoscalerList": {
      "id": "AutoscalerList",
      "type": "object",
      "description": "Contains a list of Autoscaler resources.",
      "properties": {
        "warning": {
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "items": {
          "description": "A list of Autoscaler resources.",
          "items": {
            "$ref": "Autoscaler"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "kind": {
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Always compute#autoscalerList\nfor lists of autoscalers.",
          "type": "string",
          "default": "compute#autoscalerList"
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        }
      }
    },
    "AdvancedMachineFeatures": {
      "id": "AdvancedMachineFeatures",
      "description": "Specifies options for controlling advanced machine features.\nOptions that would traditionally be configured in a BIOS belong\nhere. Features that require operating system support may have\ncorresponding entries in the GuestOsFeatures of anImage (e.g., whether or not the OS in theImage supports nested virtualization being enabled or\ndisabled).",
      "type": "object",
      "properties": {
        "enableNestedVirtualization": {
          "description": "Whether to enable nested virtualization or not (default is false).",
          "type": "boolean"
        },
        "threadsPerCore": {
          "type": "integer",
          "description": "The number of threads per physical core. To disable simultaneous\nmultithreading (SMT) set this to 1. If unset, the maximum number\nof threads supported per core by the underlying processor is\nassumed.",
          "format": "int32"
        },
        "turboMode": {
          "description": "Turbo frequency mode to use for the instance.\nSupported modes include:\n* ALL_CORE_MAX\n\nUsing empty string or not setting this field will use the platform-specific\ndefault turbo mode.",
          "type": "string"
        },
        "visibleCoreCount": {
          "format": "int32",
          "description": "The number of physical cores to expose to an instance. Multiply by\nthe number of threads per core to compute the total number of virtual\nCPUs to expose to the instance. If unset, the number of cores is\ninferred from the instance's nominal CPU count and the underlying\nplatform's SMT width.",
          "type": "integer"
        },
        "enableUefiNetworking": {
          "type": "boolean",
          "description": "Whether to enable UEFI networking for instance creation."
        },
        "performanceMonitoringUnit": {
          "enum": [
            "ARCHITECTURAL",
            "ENHANCED",
            "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED",
            "STANDARD"
          ],
          "type": "string",
          "enumDescriptions": [
            "Architecturally defined non-LLC events.",
            "Most documented core/L2 and LLC events.",
            "",
            "Most documented core/L2 events."
          ],
          "description": "Type of Performance Monitoring Unit requested on instance."
        }
      }
    },
    "InterconnectGroupPhysicalStructure": {
      "properties": {
        "metros": {
          "type": "array",
          "items": {
            "$ref": "InterconnectGroupPhysicalStructureMetros"
          },
          "readOnly": true
        }
      },
      "description": "[Output Only] An analysis of the physical layout of Interconnects in this\ngroup. Every Interconnect in the group is shown once in this structure.",
      "type": "object",
      "id": "InterconnectGroupPhysicalStructure"
    },
    "CompositeHealthCheckList": {
      "type": "object",
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for this resource."
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "type": "object",
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                }
              },
              "type": "array"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            }
          }
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Alwayscompute#compositeHealthCheck for composite health checks.",
          "type": "string",
          "default": "compute#compositeHealthCheckList",
          "readOnly": true
        },
        "items": {
          "items": {
            "$ref": "CompositeHealthCheck"
          },
          "description": "A list of CompositeHealthCheck resources.",
          "type": "array"
        }
      },
      "id": "CompositeHealthCheckList"
    },
    "InstanceGroupManagerResizeRequest": {
      "description": "InstanceGroupManagerResizeRequest represents a request to create\na number of VMs: either immediately or by queuing the request for the\nspecified time. This resize request is nested under InstanceGroupManager\nand the VMs created by this request are added to the owning\nInstanceGroupManager.",
      "type": "object",
      "id": "InstanceGroupManagerResizeRequest",
      "properties": {
        "creationTimestamp": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The creation timestamp for this resize request inRFC3339\ntext format."
        },
        "kind": {
          "type": "string",
          "description": "Output only. The resource type, which is alwayscompute#instanceGroupManagerResizeRequest for resize requests.",
          "default": "compute#instanceGroupManagerResizeRequest",
          "readOnly": true
        },
        "status": {
          "readOnly": true,
          "$ref": "InstanceGroupManagerResizeRequestStatus",
          "description": "Output only. Status of the request."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The URL for this resize request. The server defines this URL."
        },
        "resizeBy": {
          "description": "The number of instances to be created by this resize request. The group's\ntarget size will be increased by this number. This field cannot be used\ntogether with 'instances'.",
          "format": "int32",
          "type": "integer"
        },
        "region": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The URL of a region\nwhere the resize request is located. Populated only for regional resize\nrequests."
        },
        "zone": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The URL of a zone\nwhere the resize request is located. Populated only for zonal resize\nrequests."
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. A unique identifier for this resource type. The server generates this\nidentifier.",
          "format": "uint64"
        },
        "description": {
          "description": "An optional description of this resource.",
          "type": "string"
        },
        "selfLinkWithId": {
          "readOnly": true,
          "description": "Output only. Server-defined URL for this resource with the resource id.",
          "type": "string"
        },
        "requestedRunDuration": {
          "description": "Requested run duration for instances that will be created by this request.\nAt the end of the run duration instance will be deleted.",
          "$ref": "Duration"
        },
        "instances": {
          "items": {
            "$ref": "PerInstanceConfig"
          },
          "type": "array",
          "description": "The names of instances to be created by this resize request. The number of\nnames specified determines the number of instances to create. The group's\ntarget size will be increased by this number. This field cannot be used\ntogether with 'resize_by'."
        },
        "name": {
          "annotations": {
            "required": [
              "compute.instanceGroupManagerResizeRequests.insert"
            ]
          },
          "description": "The name of this resize request. The name must be 1-63 characters\nlong, and comply withRFC1035.",
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?"
        },
        "state": {
          "enum": [
            "ACCEPTED",
            "CANCELLED",
            "CREATING",
            "FAILED",
            "STATE_UNSPECIFIED",
            "SUCCEEDED"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "The request was created successfully and was accepted for provisioning\nwhen the capacity becomes available.",
            "The request is cancelled.",
            "Resize request is being created and may still fail creation.",
            "The request failed before or during provisioning. If the request fails\nduring provisioning, any VMs that were created during provisioning are\nrolled back and removed from the MIG.",
            "Default value. This value should never be returned.",
            "The request succeeded."
          ],
          "description": "Output only. Current state of the request.",
          "type": "string"
        }
      }
    },
    "InstancesSetSecurityPolicyRequest": {
      "type": "object",
      "properties": {
        "networkInterfaces": {
          "description": "The network interfaces that the security policy will be applied to. Network\ninterfaces use the nicN naming format. You can only set a\nsecurity policy for network interfaces with an access config.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "securityPolicy": {
          "description": "A full or partial URL to a security policy to add to this instance.\nIf this field is set to an empty string it will remove the associated\nsecurity policy.",
          "type": "string"
        }
      },
      "id": "InstancesSetSecurityPolicyRequest"
    },
    "VpnTunnelList": {
      "properties": {
        "kind": {
          "readOnly": true,
          "default": "compute#vpnTunnelList",
          "description": "Output only. [Output Only] Type of resource. Always compute#vpnTunnel for\nVPN tunnels.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "VpnTunnel"
          },
          "description": "A list of VpnTunnel resources."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "type": "object",
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          }
        }
      },
      "type": "object",
      "id": "VpnTunnelList",
      "description": "Contains a list of VpnTunnel resources."
    },
    "ResourcePolicySnapshotSchedulePolicySnapshotProperties": {
      "id": "ResourcePolicySnapshotSchedulePolicySnapshotProperties",
      "type": "object",
      "description": "Specified snapshot properties for scheduled snapshots created by this\npolicy.",
      "properties": {
        "guestFlush": {
          "description": "Indication to perform a 'guest aware' snapshot.",
          "type": "boolean"
        },
        "chainName": {
          "description": "Chain name that the snapshot is created in.",
          "type": "string"
        },
        "storageLocations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cloud Storage bucket storage location of the auto snapshot (regional or\nmulti-regional)."
        },
        "labels": {
          "description": "Labels to apply to scheduled snapshots. These can be later modified\nby the setLabels method. Label values may be empty.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      }
    },
    "InstanceGroupManagersUpdatePerInstanceConfigsReq": {
      "properties": {
        "perInstanceConfigs": {
          "type": "array",
          "items": {
            "$ref": "PerInstanceConfig"
          },
          "description": "The list of per-instance configurations to insert or patch on this managed\ninstance group."
        }
      },
      "description": "InstanceGroupManagers.updatePerInstanceConfigs",
      "type": "object",
      "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
    },
    "RegionNetworkEndpointGroupsAttachEndpointsRequest": {
      "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest",
      "properties": {
        "networkEndpoints": {
          "items": {
            "$ref": "NetworkEndpoint"
          },
          "type": "array",
          "description": "The list of network endpoints to be attached."
        }
      },
      "type": "object"
    },
    "TargetInstanceAggregatedList": {
      "type": "object",
      "id": "TargetInstanceAggregatedList",
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "items": {
          "type": "object",
          "additionalProperties": {
            "description": "Name of the scope containing this set of target instances.",
            "$ref": "TargetInstancesScopedList"
          },
          "description": "A list of TargetInstance resources."
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        },
        "kind": {
          "readOnly": true,
          "default": "compute#targetInstanceAggregatedList",
          "description": "Output only. Type of resource.",
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "unreachables": {
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        }
      }
    },
    "CapacityHistoryRequestInstanceProperties": {
      "id": "CapacityHistoryRequestInstanceProperties",
      "description": "Instance properties for this request.",
      "properties": {
        "machineType": {
          "type": "string",
          "description": "The machine type for the VM, such as `n2-standard-4`."
        },
        "scheduling": {
          "$ref": "CapacityHistoryRequestInstancePropertiesScheduling",
          "description": "Specifies the scheduling options."
        }
      },
      "type": "object"
    },
    "PacketMirroringList": {
      "id": "PacketMirroringList",
      "description": "Contains a list of PacketMirroring resources.",
      "type": "object",
      "properties": {
        "kind": {
          "default": "compute#packetMirroringList",
          "description": "Output only. [Output Only] Type of resource. Always compute#packetMirroring\nfor packetMirrorings.",
          "readOnly": true,
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "code": {
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "[Output Only] Unique identifier for the resource; defined by the server."
        },
        "items": {
          "items": {
            "$ref": "PacketMirroring"
          },
          "description": "A list of PacketMirroring resources.",
          "type": "array"
        }
      }
    },
    "FutureResourcesSpecLocationPolicyLocation": {
      "description": "Preference for a single specified location.",
      "type": "object",
      "properties": {
        "preference": {
          "enumDescriptions": [
            "Location is allowed for use.",
            "Location is prohibited.",
            "Default value, unused."
          ],
          "enum": [
            "ALLOW",
            "DENY",
            "PREFERENCE_UNSPECIFIED"
          ],
          "description": "Preference for this location.",
          "type": "string"
        }
      },
      "id": "FutureResourcesSpecLocationPolicyLocation"
    },
    "InterconnectGroupPhysicalStructureMetrosFacilitiesZones": {
      "id": "InterconnectGroupPhysicalStructureMetrosFacilitiesZones",
      "properties": {
        "zone": {
          "type": "string",
          "description": "Output only. [Output Only] The name of the zone, either \"zone1\" or \"zone2\".\nThis is the second component of the location of Interconnects in\nthis facility.",
          "readOnly": true
        },
        "interconnects": {
          "readOnly": true,
          "description": "Output only. [Output Only] URLs of Interconnects in this redundancy group in the\ngiven metro, facility, and zone.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "[Output Only] The zones that Interconnects in this facility are\npresent in.",
      "type": "object"
    },
    "PreservedStatePreservedNetworkIpIpAddress": {
      "type": "object",
      "properties": {
        "address": {
          "description": "The URL of the reservation for this IP address.",
          "type": "string"
        },
        "literal": {
          "description": "An IPv4 internal network address to assign to the instance for this\nnetwork interface.",
          "type": "string"
        }
      },
      "id": "PreservedStatePreservedNetworkIpIpAddress"
    },
    "TargetHttpProxy": {
      "id": "TargetHttpProxy",
      "properties": {
        "fingerprint": {
          "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a TargetHttpProxy. An up-to-date fingerprint must\nbe provided in order to patch/update the TargetHttpProxy; otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nTargetHttpProxy.",
          "type": "string",
          "format": "byte"
        },
        "kind": {
          "default": "compute#targetHttpProxy",
          "description": "Output only. [Output Only] Type of resource. Always compute#targetHttpProxy\nfor target HTTP proxies.",
          "type": "string",
          "readOnly": true
        },
        "region": {
          "description": "Output only. [Output Only] URL of the region where the regional Target HTTP Proxy\nresides. This field is not applicable to global Target HTTP Proxies.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "selfLink": {
          "description": "[Output Only] Server-defined URL for the resource.",
          "type": "string"
        },
        "id": {
          "format": "uint64",
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "creationTimestamp": {
          "readOnly": true,
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string"
        },
        "httpKeepAliveTimeoutSec": {
          "type": "integer",
          "description": "Specifies how long to keep a connection open, after completing a response,\nwhile there is no matching traffic (in seconds). If an HTTP keep-alive is\nnot specified, a default value (610 seconds) will be used.\n\nFor global external Application Load Balancers, the minimum allowed value\nis 5 seconds and the maximum allowed value is 1200 seconds.\n\nFor classic Application Load Balancers, this option is not supported.",
          "format": "int32"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "type": "string",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "urlMap": {
          "type": "string",
          "description": "URL to the UrlMap resource that defines the mapping from URL to\nthe BackendService."
        },
        "proxyBind": {
          "description": "This field only applies when the forwarding rule that references this\ntarget proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED.\n\nWhen this field is set to true, Envoy proxies set up inbound\ntraffic interception and bind to the IP address and port specified in the\nforwarding rule. This is generally useful when using Traffic Director to\nconfigure Envoy as a gateway or middle proxy (in other words, not a\nsidecar proxy). The Envoy proxy listens for inbound requests and handles\nrequests when it receives them.\n\nThe default is false.",
          "type": "boolean"
        }
      },
      "description": "Represents a Target HTTP Proxy resource.\n\nGoogle Compute Engine has two Target HTTP Proxy resources:\n\n* [Global](/compute/docs/reference/rest/v1/targetHttpProxies)\n* [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies)\n\nA target HTTP proxy is a component of Google Cloud HTTP load balancers.\n\n* targetHttpProxies are used by global external Application Load Balancers,\n  classic Application Load Balancers, cross-region internal Application Load\n  Balancers, and Traffic Director.\n* regionTargetHttpProxies are used by regional internal Application Load\n  Balancers and regional external Application Load Balancers.\n\nForwarding rules reference a target HTTP proxy, and the target proxy\nthen references a URL map. For more information, readUsing Target Proxies\nand \nForwarding rule concepts.",
      "type": "object"
    },
    "NodeGroupMaintenanceWindow": {
      "id": "NodeGroupMaintenanceWindow",
      "type": "object",
      "properties": {
        "startTime": {
          "description": "Start time of the window. This must be in UTC format that resolves to one\nof 00:00, 04:00, 08:00,12:00, 16:00, or 20:00. For\nexample, both 13:00-5 and 08:00 are valid.",
          "type": "string"
        },
        "maintenanceDuration": {
          "readOnly": true,
          "$ref": "Duration",
          "description": "Output only. [Output only] A predetermined duration for the window, automatically\nchosen to be the smallest possible in the given scenario."
        }
      },
      "description": "Time window specified for daily maintenance operations. GCE's internal\nmaintenance will be performed within this window."
    },
    "InterconnectAttachmentGroupLogicalStructure": {
      "properties": {
        "regions": {
          "items": {
            "$ref": "InterconnectAttachmentGroupLogicalStructureRegion"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "description": "[Output Only] An analysis of the logical layout of Attachments in this\ngroup. Every Attachment in the group is shown once in this structure.",
      "type": "object",
      "id": "InterconnectAttachmentGroupLogicalStructure"
    },
    "RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus": {
      "properties": {
        "state": {
          "description": "Output only. Location state of the wave.",
          "enum": [
            "STATE_FAILED",
            "STATE_IN_PROGRESS",
            "STATE_PENDING",
            "STATE_SKIPPED",
            "STATE_SUCCEEDED",
            "STATE_UNSPECIFIED"
          ],
          "enumDescriptions": [
            "Work on the wave failed.",
            "Work on the wave is in progress.",
            "Work on the wave is pending.",
            "Work on the wave was canceled or skipped.",
            "Work on the wave succeeded.",
            "Undefined default state. Should never be exposed to users."
          ],
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "Represents the status of a location in a wave.",
      "id": "RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus"
    },
    "PreviewFeatureList": {
      "id": "PreviewFeatureList",
      "type": "object",
      "properties": {
        "selfLink": {
          "readOnly": true,
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string"
        },
        "items": {
          "description": "A list of PreviewFeature resources.",
          "items": {
            "$ref": "PreviewFeature"
          },
          "type": "array"
        },
        "etag": {
          "type": "string"
        },
        "warning": {
          "type": "object",
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array"
            },
            "code": {
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "description": "[Output Only] Informational warning message."
        },
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "unreachables": {
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results."
        }
      }
    },
    "InstanceGroupManagersResumeInstancesRequest": {
      "properties": {
        "instances": {
          "items": {
            "type": "string"
          },
          "description": "The URLs of one or more instances to resume. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].",
          "type": "array"
        }
      },
      "id": "InstanceGroupManagersResumeInstancesRequest",
      "type": "object"
    },
    "RegionInstanceGroupManagersStartInstancesRequest": {
      "type": "object",
      "properties": {
        "instances": {
          "description": "The URLs of one or more instances to start. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "RegionInstanceGroupManagersStartInstancesRequest"
    },
    "InterconnectAttachmentGroup": {
      "id": "InterconnectAttachmentGroup",
      "type": "object",
      "properties": {
        "etag": {
          "description": "Opaque system-generated token that uniquely identifies the configuration.\nIf provided when patching a configuration in update mode, the provided\ntoken must match the current token or the update is rejected. This provides\na reliable means of doing read-modify-write (optimistic locking) as\ndescribed byAIP 154.",
          "type": "string"
        },
        "attachments": {
          "additionalProperties": {
            "$ref": "InterconnectAttachmentGroupAttachment"
          },
          "type": "object",
          "description": "Attachments in the AttachmentGroup. Keys are arbitrary user-specified\nstrings. Users are encouraged, but not required, to use their preferred\nformat for resource links as keys.\nNote that there are add-members and remove-members methods in gcloud.\nThe size of this map is limited by an \"Attachments per group\" quota."
        },
        "logicalStructure": {
          "$ref": "InterconnectAttachmentGroupLogicalStructure",
          "readOnly": true
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.",
          "type": "string",
          "format": "uint64"
        },
        "interconnectGroup": {
          "description": "The URL of an InterconnectGroup that groups these Attachments'\nInterconnects. Customers do not need to set this unless directed by\nGoogle Support.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash."
        },
        "intent": {
          "$ref": "InterconnectAttachmentGroupIntent"
        },
        "configured": {
          "$ref": "InterconnectAttachmentGroupConfigured",
          "readOnly": true
        },
        "kind": {
          "type": "string",
          "default": "compute#interconnectAttachmentGroup",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of the resource. Always\ncompute#interconnectAttachmentGroup."
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true
        }
      },
      "description": "An interconnect attachment group resource allows customers to create,\nanalyze, and expand highly available deployments."
    },
    "ReservationList": {
      "type": "object",
      "properties": {
        "kind": {
          "description": "Output only. [Output Only] Type of resource.Always compute#reservationsList\nfor listsof reservations",
          "readOnly": true,
          "default": "compute#reservationList",
          "type": "string"
        },
        "warning": {
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              }
            },
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "type": "string"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "description": "[Output Only] Informational warning message.",
          "type": "object"
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        },
        "id": {
          "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "type": "string"
        },
        "selfLink": {
          "description": "Output only. [Output Only] Server-defined URL for this resource.",
          "type": "string",
          "readOnly": true
        },
        "items": {
          "type": "array",
          "description": "[Output Only] A list of Allocation resources.",
          "items": {
            "$ref": "Reservation"
          }
        }
      },
      "id": "ReservationList"
    },
    "StoragePoolList": {
      "properties": {
        "id": {
          "description": "[Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "StoragePool"
          },
          "description": "A list of StoragePool resources.",
          "type": "array"
        },
        "etag": {
          "type": "string"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "description": "[Output Only] Informational warning message.",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ]
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            }
          },
          "type": "object"
        },
        "kind": {
          "default": "compute#storagePoolList",
          "type": "string",
          "readOnly": true,
          "description": "Output only. [Output Only] Type of resource. Always compute#storagePoolList\nfor lists of storagePools."
        },
        "unreachables": {
          "readOnly": true,
          "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      },
      "id": "StoragePoolList",
      "type": "object",
      "description": "A list of StoragePool resources."
    },
    "AutoscalingPolicyScalingSchedule": {
      "properties": {
        "schedule": {
          "description": "The start timestamps of time intervals when this scaling\nschedule is to provide a scaling signal. This field uses the extended\ncron format (with an optional year field). The expression can describe a\nsingle timestamp if the optional year is set, in which case the scaling\nschedule runs once. The schedule is interpreted with respect to\ntime_zone. This field is required. Note: These timestamps only describe\nwhen autoscaler starts providing the scaling signal. The VMs\nneed additional time to become serving.",
          "type": "string"
        },
        "description": {
          "description": "A description of a scaling schedule.",
          "type": "string"
        },
        "timeZone": {
          "description": "The time zone to use when interpreting the schedule.\nThe value of this field must be a time zone name from the tz database:\nhttps://en.wikipedia.org/wiki/Tz_database. This field is assigned a\ndefault value of \"UTC\" if left empty.",
          "type": "string"
        },
        "durationSec": {
          "description": "The duration of time intervals, in seconds, for which this\nscaling schedule is to run. The minimum allowed value is 300.\nThis field is required.",
          "format": "int32",
          "type": "integer"
        },
        "disabled": {
          "type": "boolean",
          "description": "A boolean value that specifies whether a scaling schedule can influence\nautoscaler recommendations. If set to true, then a scaling schedule has\nno effect. This field is optional, and its value is false by default."
        },
        "minRequiredReplicas": {
          "format": "int32",
          "type": "integer",
          "description": "The minimum number of VM instances that the autoscaler will\nrecommend in time intervals starting according to schedule. This field is\nrequired."
        }
      },
      "id": "AutoscalingPolicyScalingSchedule",
      "description": "Scaling based on user-defined schedule. The message describes a single\nscaling schedule. A scaling schedule changes the minimum number of VM\ninstances an autoscaler can recommend, which can trigger scaling out.",
      "type": "object"
    },
    "ProjectsSetDefaultNetworkTierRequest": {
      "id": "ProjectsSetDefaultNetworkTierRequest",
      "type": "object",
      "properties": {
        "networkTier": {
          "type": "string",
          "enumDescriptions": [
            "Public internet quality with fixed bandwidth.",
            "High quality, Google-grade network tier, support for all networking\nproducts.",
            "Public internet quality, only limited support for other networking\nproducts.",
            "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured."
          ],
          "description": "Default network tier to be set.",
          "enum": [
            "FIXED_STANDARD",
            "PREMIUM",
            "STANDARD",
            "STANDARD_OVERRIDES_FIXED_STANDARD"
          ]
        }
      }
    },
    "SubnetworksSetPrivateIpGoogleAccessRequest": {
      "id": "SubnetworksSetPrivateIpGoogleAccessRequest",
      "properties": {
        "privateIpGoogleAccess": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "TargetPoolsScopedList": {
      "id": "TargetPoolsScopedList",
      "properties": {
        "warning": {
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ]
            },
            "data": {
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  }
                }
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object",
          "description": "Informational warning which replaces the list of addresses when\nthe list is empty."
        },
        "targetPools": {
          "items": {
            "$ref": "TargetPool"
          },
          "type": "array",
          "description": "A list of target pools contained in this scope."
        }
      },
      "type": "object"
    },
    "Firewall": {
      "description": "Represents a Firewall Rule resource.\n\nFirewall rules allow or deny ingress traffic to, and egress traffic from your\ninstances. For more information, readFirewall rules.",
      "properties": {
        "description": {
          "description": "An optional description of this resource. Provide this field when you\ncreate the resource.",
          "type": "string"
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "FirewallParams"
        },
        "name": {
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character\nmust be a lowercase letter, and all following characters (except for the\nlast character) must be a dash, lowercase letter, or digit. The last\ncharacter must be a lowercase letter or digit.",
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "annotations": {
            "required": [
              "compute.firewalls.insert",
              "compute.firewalls.patch"
            ]
          },
          "type": "string"
        },
        "disabled": {
          "type": "boolean",
          "description": "Denotes whether the firewall rule is disabled. When set to true, the\nfirewall rule is not enforced and the network behaves as if it did not\nexist. If this is unspecified, the firewall rule will be enabled."
        },
        "destinationRanges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "If destination ranges are specified, the firewall rule applies only to\ntraffic that has destination IP address in these ranges. These ranges must\nbe expressed inCIDR format. Both IPv4 and IPv6 are supported."
        },
        "sourceServiceAccounts": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "If source service accounts are specified, the firewall rules apply only to\ntraffic originating from an instance with a service account in this list.\nSource service accounts cannot be used to control traffic to an instance's\nexternal IP address because service accounts are associated with an\ninstance, not an IP address.sourceRanges can be set at the same time assourceServiceAccounts.\nIf both are set, the firewall applies to traffic that\nhas a source IP address within the sourceRanges OR a source\nIP that belongs to an instance with service account listed insourceServiceAccount. The connection does not need to match\nboth fields for the firewall to apply.sourceServiceAccounts cannot be used at the same time assourceTags or targetTags."
        },
        "targetServiceAccounts": {
          "description": "A list of service accounts indicating sets of instances located in the\nnetwork that may make network connections as specified inallowed[].targetServiceAccounts cannot be used at the same time astargetTags or sourceTags.\nIf neither targetServiceAccounts nor targetTags\nare specified, the firewall rule applies to all instances on the specified\nnetwork.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "network": {
          "type": "string",
          "description": "URL of the network resource for this firewall rule. If not\nspecified when creating a firewall rule, the default network\nis used:\n\nglobal/networks/default\n\nIf you choose to specify this field, you can specify the network as a full \nor partial URL. For example, the following are all valid URLs: \n   \n   - \n   https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network \n   - projects/myproject/global/networks/my-network \n   - global/networks/default"
        },
        "sourceRanges": {
          "description": "If source ranges are specified, the firewall rule applies only to traffic\nthat has a source IP address in these ranges. These ranges must be\nexpressed inCIDR format. One or both of sourceRanges\nand sourceTags may be set.\nIf both fields are set, the rule applies to traffic that has a\nsource IP address within sourceRanges OR a source IP\nfrom a resource with a matching tag listed in thesourceTags field. The connection does not need to match\nboth fields for the rule to\napply. Both IPv4 and IPv6 are supported.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "denied": {
          "items": {
            "type": "object",
            "properties": {
              "ports": {
                "items": {
                  "type": "string"
                },
                "description": "An optional list of ports to which this rule applies.\nThis field is only applicable for the UDP or TCP protocol.\nEach entry must be either an integer or a range.\nIf not specified, this rule applies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"],\nand [\"12345-12349\"].",
                "type": "array"
              },
              "IPProtocol": {
                "description": "The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be one of the\nfollowing well known protocol strings (tcp, udp,icmp, esp, ah, ipip,sctp) or the IP protocol number.",
                "type": "string"
              }
            }
          },
          "description": "The list of DENY rules specified by this firewall. Each rule specifies a\nprotocol and port-range tuple that describes a denied connection.",
          "type": "array"
        },
        "allowed": {
          "description": "The list of ALLOW rules specified by this firewall. Each rule specifies a\nprotocol and port-range tuple that describes a permitted connection.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "IPProtocol": {
                "description": "The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be one of the\nfollowing well known protocol strings (tcp, udp,icmp, esp, ah, ipip,sctp) or the IP protocol number.",
                "type": "string"
              },
              "ports": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An optional list of ports to which this rule applies.\nThis field is only applicable for the UDP or TCP protocol.\nEach entry must be either an integer or a range.\nIf not specified, this rule applies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"],\nand [\"12345-12349\"]."
              }
            }
          }
        },
        "priority": {
          "format": "int32",
          "type": "integer",
          "description": "Priority for this rule.\nThis is an integer between `0` and `65535`, both inclusive.\nThe default value is `1000`.\nRelative priorities determine which rule takes effect if multiple rules\napply. Lower values indicate higher priority. For example, a rule with\npriority `0` has higher precedence than a rule with priority `1`.\nDENY rules take precedence over ALLOW rules if they have equal priority.\nNote that VPC networks have implied\nrules with a priority of `65535`. To avoid conflicts with the implied\nrules, use a priority number less than `65535`."
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "format": "uint64",
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server."
        },
        "sourceTags": {
          "description": "If source tags are specified, the firewall rule applies only to traffic\nwith source IPs that match the primary network interfaces of VM instances\nthat have the tag and are in the same VPC network.\nSource tags cannot be used to control traffic to an instance's external IP\naddress, it only applies to traffic between instances in the same virtual\nnetwork. Because tags are associated with instances, not IP addresses.\nOne or both of sourceRanges and sourceTags may be\nset. If both fields are set, the firewall applies to traffic that has a\nsource IP address within sourceRanges OR a source IP from a\nresource with a matching tag listed in the sourceTags\nfield. The connection does not need to match both fields for the\nfirewall to apply.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "logConfig": {
          "$ref": "FirewallLogConfig",
          "description": "This field denotes the logging options for a particular firewall rule. If\nlogging is enabled, logs will be exported to Cloud Logging."
        },
        "direction": {
          "enumDescriptions": [
            "Indicates that firewall should apply to outgoing traffic.",
            "Indicates that firewall should apply to incoming traffic."
          ],
          "type": "string",
          "description": "Direction of traffic to which this firewall applies, either `INGRESS` or\n`EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot\nspecify the sourceTags fields.",
          "enum": [
            "EGRESS",
            "INGRESS"
          ]
        },
        "targetTags": {
          "description": "A list of tags that controls which instances the firewall rule\napplies to. If targetTags are specified, then the firewall\nrule applies only to instances in the VPC network that have one of those\ntags. If no targetTags are specified, the firewall rule\napplies to all instances on the specified network.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "selfLink": {
          "type": "string",
          "description": "[Output Only] Server-defined URL for the resource."
        },
        "kind": {
          "default": "compute#firewall",
          "type": "string",
          "description": "Output only. [Output Only] Type of the resource. Always compute#firewall\nfor firewall rules.",
          "readOnly": true
        },
        "creationTimestamp": {
          "type": "string",
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "readOnly": true
        }
      },
      "id": "Firewall",
      "type": "object"
    },
    "RegionInstanceGroupsListInstances": {
      "id": "RegionInstanceGroupsListInstances",
      "type": "object",
      "properties": {
        "items": {
          "description": "A list of InstanceWithNamedPorts resources.",
          "items": {
            "$ref": "InstanceWithNamedPorts"
          },
          "type": "array"
        },
        "selfLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for this resource."
        },
        "warning": {
          "description": "Output only. [Output Only] Informational warning message.",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response."
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              }
            },
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            }
          },
          "type": "object",
          "readOnly": true
        },
        "id": {
          "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.",
          "type": "string",
          "readOnly": true
        },
        "kind": {
          "default": "compute#regionInstanceGroupsListInstances",
          "description": "Output only. The resource type.",
          "readOnly": true,
          "type": "string"
        },
        "nextPageToken": {
          "readOnly": true,
          "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.",
          "type": "string"
        }
      }
    },
    "HealthCheckReference": {
      "id": "HealthCheckReference",
      "description": "A full or valid partial URL to a health check. For example, the following are\nvalid URLs:\n   \n   - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check\n   - projects/project-id/global/httpHealthChecks/health-check\n   - global/httpHealthChecks/health-check",
      "type": "object",
      "properties": {
        "healthCheck": {
          "type": "string"
        }
      }
    },
    "BfdPacket": {
      "properties": {
        "authenticationPresent": {
          "description": "The Authentication Present bit of the BFD packet. This is specified in\nsection 4.1 ofRFC5880",
          "type": "boolean"
        },
        "state": {
          "description": "The current BFD session state as seen by the transmitting system. These\nstates are specified in section 4.1 ofRFC5880",
          "enum": [
            "ADMIN_DOWN",
            "DOWN",
            "INIT",
            "STATE_UNSPECIFIED",
            "UP"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "diagnostic": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "description": "The diagnostic code specifies the local system's reason for the last change\nin session state. This allows remote systems to determine the reason that\nthe previous session failed, for example. These diagnostic codes are\nspecified in section 4.1 ofRFC5880",
          "enum": [
            "ADMINISTRATIVELY_DOWN",
            "CONCATENATED_PATH_DOWN",
            "CONTROL_DETECTION_TIME_EXPIRED",
            "DIAGNOSTIC_UNSPECIFIED",
            "ECHO_FUNCTION_FAILED",
            "FORWARDING_PLANE_RESET",
            "NEIGHBOR_SIGNALED_SESSION_DOWN",
            "NO_DIAGNOSTIC",
            "PATH_DOWN",
            "REVERSE_CONCATENATED_PATH_DOWN"
          ]
        },
        "version": {
          "format": "uint32",
          "description": "The version number of the BFD protocol, as specified in section 4.1 ofRFC5880.",
          "type": "integer"
        },
        "controlPlaneIndependent": {
          "description": "The Control Plane Independent bit of the BFD packet. This is specified in\nsection 4.1 ofRFC5880",
          "type": "boolean"
        },
        "minRxIntervalMs": {
          "format": "uint32",
          "description": "The Required Min RX Interval value in the BFD packet. This is specified in\nsection 4.1 ofRFC5880",
          "type": "integer"
        },
        "minEchoRxIntervalMs": {
          "format": "uint32",
          "description": "The Required Min Echo RX Interval value in the BFD packet. This is\nspecified in section 4.1 ofRFC5880",
          "type": "integer"
        },
        "final": {
          "type": "boolean",
          "description": "The Final bit of the BFD packet. This is specified in section 4.1 ofRFC5880"
        },
        "poll": {
          "description": "The Poll bit of the BFD packet. This is specified in section 4.1 ofRFC5880",
          "type": "boolean"
        },
        "myDiscriminator": {
          "type": "integer",
          "description": "The My Discriminator value in the BFD packet. This is specified in section\n4.1 ofRFC5880",
          "format": "uint32"
        },
        "minTxIntervalMs": {
          "format": "uint32",
          "description": "The Desired Min TX Interval value in the BFD packet. This is specified in\nsection 4.1 ofRFC5880",
          "type": "integer"
        },
        "yourDiscriminator": {
          "format": "uint32",
          "description": "The Your Discriminator value in the BFD packet. This is specified in\nsection 4.1 ofRFC5880",
          "type": "integer"
        },
        "demand": {
          "description": "The demand bit of the BFD packet. This is specified in section 4.1 ofRFC5880",
          "type": "boolean"
        },
        "length": {
          "type": "integer",
          "description": "The length of the BFD Control packet in bytes. This is specified in section\n4.1 ofRFC5880",
          "format": "uint32"
        },
        "multipoint": {
          "description": "The multipoint bit of the BFD packet. This is specified in section 4.1 ofRFC5880",
          "type": "boolean"
        },
        "multiplier": {
          "description": "The detection time multiplier of the BFD packet. This is specified in\nsection 4.1 ofRFC5880",
          "type": "integer",
          "format": "uint32"
        }
      },
      "id": "BfdPacket",
      "type": "object"
    },
    "InstanceGroupManagerResizeRequestStatusLastAttempt": {
      "id": "InstanceGroupManagerResizeRequestStatusLastAttempt",
      "properties": {
        "error": {
          "type": "object",
          "properties": {
            "errors": {
              "description": "[Output Only] The array of errors encountered while processing this\noperation.",
              "items": {
                "properties": {
                  "errorDetails": {
                    "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "quotaInfo": {
                          "description": "Details about quota limits and metrics when a quota is exceeded.",
                          "$ref": "QuotaExceededInfo"
                        },
                        "localizedMessage": {
                          "description": "A localized human-readable error message intended for end users.",
                          "$ref": "LocalizedMessage"
                        },
                        "errorInfo": {
                          "description": "Error information containing structured domain, reason, and metadata.",
                          "$ref": "ErrorInfo"
                        },
                        "help": {
                          "description": "Links and information to help the user resolve the error.",
                          "$ref": "Help"
                        }
                      },
                      "description": "Container for structured error details providing additional context\nspecific to the encountered error code."
                    },
                    "type": "array"
                  },
                  "message": {
                    "type": "string",
                    "description": "[Output Only] An optional, human-readable error message."
                  },
                  "code": {
                    "type": "string",
                    "description": "[Output Only] The error type identifier for this error."
                  },
                  "location": {
                    "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional.",
                    "type": "string"
                  }
                },
                "type": "object",
                "description": "Represents a single error encountered during the processing of an\noperation."
              },
              "type": "array"
            }
          },
          "description": "Output only. Errors that prevented the ResizeRequest to be fulfilled.",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "DisksAddResourcePoliciesRequest": {
      "properties": {
        "resourcePolicies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Full or relative path to the resource policy to be added to this disk. You\ncan only specify one resource policy."
        }
      },
      "id": "DisksAddResourcePoliciesRequest",
      "type": "object"
    },
    "CustomerEncryptionKeyProtectedDisk": {
      "properties": {
        "diskEncryptionKey": {
          "description": "Decrypts data associated with the disk with acustomer-supplied\nencryption key.",
          "$ref": "CustomerEncryptionKey"
        },
        "source": {
          "description": "Specifies a valid partial or full URL to an existing Persistent Disk\nresource. This field is only applicable for persistent disks.\nFor example:\n\n\"source\": \"/compute/v1/projects/project_id/zones/zone/disks/\ndisk_name",
          "type": "string"
        }
      },
      "type": "object",
      "id": "CustomerEncryptionKeyProtectedDisk"
    },
    "HealthCheckServicesScopedList": {
      "type": "object",
      "id": "HealthCheckServicesScopedList",
      "properties": {
        "warning": {
          "properties": {
            "message": {
              "description": "[Output Only] A human-readable description of the warning code.",
              "type": "string"
            },
            "data": {
              "items": {
                "properties": {
                  "value": {
                    "description": "[Output Only] A warning data value corresponding to the key.",
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  }
                },
                "type": "object"
              },
              "type": "array",
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]"
            },
            "code": {
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "type": "object",
          "description": "Informational warning which replaces the list of\nbackend services when the list is empty."
        },
        "resources": {
          "type": "array",
          "description": "A list of HealthCheckServices contained in this scope.",
          "items": {
            "$ref": "HealthCheckService"
          }
        }
      }
    },
    "InstanceGroupManagerStatusStateful": {
      "type": "object",
      "id": "InstanceGroupManagerStatusStateful",
      "properties": {
        "hasStatefulConfig": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. A bit indicating whether the managed instance group\nhas stateful configuration, that is, if you have configured any items\nin a stateful policy or in per-instance configs.\nThe group might report that it has no stateful configuration even when\nthere is still some preserved state on a managed instance, for example,\nif you have deleted all PICs but not yet applied those deletions."
        },
        "perInstanceConfigs": {
          "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs",
          "readOnly": true,
          "description": "Output only. Status of per-instance configurations on the instances."
        }
      }
    },
    "ShieldedInstanceIntegrityPolicy": {
      "properties": {
        "updateAutoLearnPolicy": {
          "type": "boolean",
          "description": "Updates the integrity policy baseline using the\nmeasurements from the VM instance's most recent boot."
        }
      },
      "id": "ShieldedInstanceIntegrityPolicy",
      "description": "The policy describes the baseline against which\nInstance boot integrity is measured.",
      "type": "object"
    },
    "RegionSetPolicyRequest": {
      "type": "object",
      "properties": {
        "bindings": {
          "items": {
            "$ref": "Binding"
          },
          "description": "Flatten Policy to create a backwacd compatible wire-format.\nDeprecated. Use 'policy' to specify bindings.",
          "type": "array"
        },
        "etag": {
          "format": "byte",
          "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify the etag.",
          "type": "string"
        },
        "policy": {
          "$ref": "Policy",
          "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of\nthe policy is limited to a few 10s of KB. An empty policy is in general a\nvalid policy but certain services (like Projects) might reject them."
        }
      },
      "id": "RegionSetPolicyRequest"
    },
    "NetworkEdgeSecurityServicesScopedList": {
      "properties": {
        "warning": {
          "properties": {
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "items": {
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding)."
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            },
            "code": {
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "type": "string",
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ]
            }
          },
          "type": "object",
          "description": "Informational warning which replaces the list of\nsecurity policies when the list is empty."
        },
        "networkEdgeSecurityServices": {
          "items": {
            "$ref": "NetworkEdgeSecurityService"
          },
          "type": "array",
          "description": "A list of NetworkEdgeSecurityServices contained in this scope."
        }
      },
      "id": "NetworkEdgeSecurityServicesScopedList",
      "type": "object"
    },
    "SubnetworksScopedList": {
      "properties": {
        "subnetworks": {
          "description": "A list of subnetworks contained in this scope.",
          "items": {
            "$ref": "Subnetwork"
          },
          "type": "array"
        },
        "warning": {
          "description": "An informational warning that appears when the list of addresses\nis empty.",
          "properties": {
            "code": {
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
                "FIELD_VALUE_OVERRIDEN",
                "INJECTED_KERNELS_DEPRECATED",
                "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB",
                "LARGE_DEPLOYMENT_WARNING",
                "LIST_OVERHEAD_QUOTA_EXCEED",
                "MISSING_TYPE_DEPENDENCY",
                "NEXT_HOP_ADDRESS_NOT_ASSIGNED",
                "NEXT_HOP_CANNOT_IP_FORWARD",
                "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE",
                "NEXT_HOP_INSTANCE_NOT_FOUND",
                "NEXT_HOP_INSTANCE_NOT_ON_NETWORK",
                "NEXT_HOP_NOT_RUNNING",
                "NOT_CRITICAL_ERROR",
                "NO_RESULTS_ON_PAGE",
                "PARTIAL_SUCCESS",
                "QUOTA_INFO_UNAVAILABLE",
                "REQUIRED_TOS_AGREEMENT",
                "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING",
                "RESOURCE_NOT_DELETED",
                "SCHEMA_VALIDATION_IGNORED",
                "SINGLE_INSTANCE_PROPERTY_TEMPLATE",
                "UNDECLARED_PROPERTIES",
                "UNREACHABLE"
              ],
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "type": "string"
            },
            "data": {
              "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n  {\n   \"key\": \"scope\",\n   \"value\": \"zones/us-east1-d\"\n  }]",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).",
                    "type": "string"
                  },
                  "value": {
                    "type": "string",
                    "description": "[Output Only] A warning data value corresponding to the key."
                  }
                }
              }
            },
            "message": {
              "type": "string",
              "description": "[Output Only] A human-readable description of the warning code."
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "id": "SubnetworksScopedList"
    },
    "StatefulPolicyPreservedStateDiskDevice": {
      "id": "StatefulPolicyPreservedStateDiskDevice",
      "properties": {
        "autoDelete": {
          "enum": [
            "NEVER",
            "ON_PERMANENT_INSTANCE_DELETION"
          ],
          "description": "These stateful disks will never be deleted during autohealing,\nupdate or VM instance recreate operations.\nThis flag is used to configure if the disk should be deleted after it\nis no longer used by the group, e.g. when the given instance or\nthe whole group is deleted. Note: disks attached inREAD_ONLY mode cannot be auto-deleted.",
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ]
        }
      },
      "type": "object"
    },
    "NetworkEndpointGroupsDetachEndpointsRequest": {
      "type": "object",
      "properties": {
        "networkEndpoints": {
          "description": "The list of network endpoints to be detached.",
          "type": "array",
          "items": {
            "$ref": "NetworkEndpoint"
          }
        }
      },
      "id": "NetworkEndpointGroupsDetachEndpointsRequest"
    },
    "Image": {
      "properties": {
        "family": {
          "type": "string",
          "description": "The name of the image family to which this image belongs. The image\nfamily name can be from a publicly managed image family provided by\nCompute Engine, or from a custom image family you create. For example,centos-stream-9 is a publicly available image family.\nFor more information, see Image\nfamily best practices.\n\nWhen creating disks, you can specify an image family instead of a specific\nimage name. The image family always returns its latest image that is not\ndeprecated. The name of the image family must comply with RFC1035."
        },
        "architecture": {
          "enum": [
            "ARCHITECTURE_UNSPECIFIED",
            "ARM64",
            "X86_64"
          ],
          "description": "The architecture of the image. Valid values are\nARM64 or X86_64.",
          "type": "string",
          "enumDescriptions": [
            "Default value indicating Architecture is not set.",
            "Machines with architecture ARM64",
            "Machines with architecture X86_64"
          ]
        },
        "sourceSnapshotId": {
          "description": "Output only. [Output Only]\nThe ID value of the snapshot used to create this image. This value may be\nused to determine whether the snapshot was taken from the current or a\nprevious instance of a given snapshot name.",
          "type": "string",
          "readOnly": true
        },
        "params": {
          "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload.",
          "$ref": "ImageParams"
        },
        "deprecated": {
          "$ref": "DeprecationStatus",
          "readOnly": true,
          "description": "Output only. The deprecation status associated with this image."
        },
        "licenseCodes": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Integer license codes indicating which licenses are attached to this image."
        },
        "labelFingerprint": {
          "type": "string",
          "description": "A fingerprint for the labels being applied to this image, which is\nessentially a hash of the labels used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an image.",
          "format": "byte"
        },
        "satisfiesPzs": {
          "description": "Output only. [Output Only] Reserved for future use.",
          "readOnly": true,
          "type": "boolean"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Labels to apply to this image. These can be later modified by\nthe setLabels method."
        },
        "sourceDisk": {
          "type": "string",
          "description": "URL of the source disk used to create this image.\nFor example, the following are valid values:\n   \n   - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk \n   - projects/project/zones/zone/disks/disk \n   - zones/zone/disks/disk\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n   \n   - The rawDisk.source URL \n   - The sourceDisk URL \n   - The sourceImage URL \n   - The sourceSnapshot URL"
        },
        "creationTimestamp": {
          "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.",
          "format": "uint64",
          "type": "string",
          "readOnly": true
        },
        "shieldedInstanceInitialState": {
          "description": "Set the secure boot keys of shielded instance.",
          "$ref": "InitialStateConfig"
        },
        "licenses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Any applicable license URI."
        },
        "selfLink": {
          "type": "string",
          "description": "Output only. [Output Only] Server-defined URL for the resource.",
          "readOnly": true
        },
        "rawDisk": {
          "description": "The parameters of the raw disk image.",
          "type": "object",
          "properties": {
            "containerType": {
              "enum": [
                "TAR"
              ],
              "type": "string",
              "description": "The format used to encode and transmit the block device, which should beTAR. This is just a container and transmission format and not\na runtime format. Provided by the client when the disk image is created.",
              "enumDescriptions": [
                ""
              ]
            },
            "source": {
              "type": "string",
              "description": "The full Google Cloud Storage URL or Artifact Registry path where the raw\ndisk image archive is stored.\nThe following are valid formats:\n   \n   - https://storage.googleapis.com/bucket_name/image_archive_name\n   - https://storage.googleapis.com/bucket_name/folder_name/image_archive_name\n   - projects/project/locations/location/repositories/repo/packages/package/versions/version_id\n   - projects/project/locations/location/repositories/repo/packages/package/versions/version_id@dirsum_sha256:hex_value\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n   \n   - The rawDisk.source URL \n   - The sourceDisk URL \n   - The sourceImage URL \n   - The sourceSnapshot URL"
            },
            "sha1Checksum": {
              "pattern": "[a-f0-9]{40}",
              "deprecated": true,
              "type": "string",
              "description": "[Deprecated] This field is deprecated.\nAn optional SHA1 checksum of the disk image before unpackaging provided\nby the client when the disk image is created."
            }
          }
        },
        "imageEncryptionKey": {
          "description": "Encrypts the image using acustomer-supplied\nencryption key.\n\nAfter you encrypt an image with a customer-supplied key, you must provide\nthe same key if you use the image later (e.g. to create a disk from\nthe image).\n\nCustomer-supplied encryption keys do not protect access to metadata\nof the disk.\n\nIf you do not provide an encryption key when creating the image, then the\ndisk will be encrypted using an automatically generated key and you do not\nneed to provide a key to use the image later.",
          "$ref": "CustomerEncryptionKey"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "DELETING",
            "FAILED",
            "PENDING",
            "READY"
          ],
          "type": "string",
          "enumDescriptions": [
            "Image is deleting.",
            "Image creation failed due to an error.",
            "Image hasn't been created as yet.",
            "Image has been successfully created."
          ],
          "description": "Output only. [Output Only] The status of the image. An image can be used to create other\nresources, such as instances, only after the image has been successfully\ncreated and the status is set to READY. Possible\nvalues are FAILED, PENDING, orREADY."
        },
        "sourceDiskEncryptionKey": {
          "$ref": "CustomerEncryptionKey",
          "description": "Thecustomer-supplied\nencryption key of the source disk. Required if the source disk is\nprotected by a customer-supplied encryption key."
        },
        "archiveSizeBytes": {
          "description": "Size of the image tar.gz archive stored in Google Cloud\nStorage (in bytes).",
          "type": "string",
          "format": "int64"
        },
        "storageLocations": {
          "description": "Cloud Storage bucket storage location of the image (regional or\nmulti-regional).",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sourceSnapshot": {
          "type": "string",
          "description": "URL of the source snapshot used to create this image.\nThe following are valid formats for the URL:\n   \n   - https://www.googleapis.com/compute/v1/projects/project_id/global/\n   snapshots/snapshot_name\n   - projects/project_id/global/snapshots/snapshot_name\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n   \n   - The rawDisk.source URL \n   - The sourceDisk URL \n   - The sourceImage URL \n   - The sourceSnapshot URL"
        },
        "enableConfidentialCompute": {
          "description": "Output only. Whether this image is created from a confidential compute mode disk.\n[Output Only]: This field is not set by user, but from source disk.",
          "type": "boolean",
          "readOnly": true
        },
        "description": {
          "description": "An optional description of this resource. Provide this property when you\ncreate the resource.",
          "type": "string"
        },
        "guestOsFeatures": {
          "description": "A list of features to enable on the guest operating system. Applicable\nonly for bootable images. To see a list of available options, see theguestOSfeatures[].type parameter.",
          "type": "array",
          "items": {
            "$ref": "GuestOsFeature"
          }
        },
        "sourceImageEncryptionKey": {
          "description": "The customer-supplied encryption key of the source image. Required if the\nsource image is protected by a customer-supplied encryption key.",
          "$ref": "CustomerEncryptionKey"
        },
        "sourceType": {
          "enum": [
            "RAW"
          ],
          "enumDescriptions": [
            ""
          ],
          "default": "RAW",
          "description": "The type of the image used to create this disk. The\ndefault and only valid value is RAW.",
          "type": "string"
        },
        "name": {
          "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
          "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.",
          "annotations": {
            "required": [
              "compute.images.insert"
            ]
          },
          "type": "string"
        },
        "sourceDiskId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. [Output Only]\nThe ID value of the disk used to create this image. This value may be used\nto determine whether the image was taken from the current or a previous\ninstance of a given disk name."
        },
        "sourceImage": {
          "type": "string",
          "description": "URL of the source image used to create this image.\nThe following are valid formats for the URL:\n   \n   - https://www.googleapis.com/compute/v1/projects/project_id/global/\n   images/image_name\n   - projects/project_id/global/images/image_name\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n   \n   - The rawDisk.source URL \n   - The sourceDisk URL \n   - The sourceImage URL \n   - The sourceSnapshot URL"
        },
        "satisfiesPzi": {
          "description": "Output only. Reserved for future use.",
          "readOnly": true,
          "type": "boolean"
        },
        "sourceSnapshotEncryptionKey": {
          "description": "The customer-supplied encryption key of the source snapshot. Required if\nthe source snapshot is protected by a customer-supplied encryption key.",
          "$ref": "CustomerEncryptionKey"
        },
        "diskSizeGb": {
          "type": "string",
          "description": "Size of the image when restored onto a persistent disk (in GB).",
          "format": "int64"
        },
        "kind": {
          "description": "Output only. [Output Only] Type of the resource. Always compute#image for\nimages.",
          "readOnly": true,
          "type": "string",
          "default": "compute#image"
        },
        "sourceImageId": {
          "readOnly": true,
          "description": "Output only. [Output Only]\nThe ID value of the image used to create this image. This value may be used\nto determine whether the image was taken from the current or a previous\ninstance of a given image name.",
          "type": "string"
        }
      },
      "id": "Image",
      "description": "Represents an Image resource.\n\nYou can use images to create boot disks for your VM instances.\nFor more information, read Images.",
      "type": "object"
    },
    "NetworkEndpointGroupsScopedList": {
      "type": "object",
      "properties": {
        "warning": {
          "readOnly": true,
          "description": "Output only. [Output Only] An informational warning that replaces the list of network\nendpoint groups when the list is empty.",
          "properties": {
            "code": {
              "type": "string",
              "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.",
              "enumDeprecated": [
                false,
                false,
                false,
                false,
                false,
                false,
                true,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
              ],
              "enumDescriptions": [
                "Warning about failed cleanup of transient changes made by a failed\noperation.",
                "A link to a deprecated resource was created.",
                "When deploying and at least one of the resources has a type marked as\ndeprecated",
                "The user created a boot disk that is larger than image size.",
                "When deploying and at least one of the resources has a type marked as\nexperimental",
                "Warning that is present in an external api call",
                "Warning that value of a field has been overridden.\nDeprecated unused field.",
                "The operation involved use of an injected kernel, which is deprecated.",
                "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.",
                "When deploying a deployment with a exceedingly large number of resources",
                "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.",
                "A resource depends on a missing type",
                "The route's nextHopIp address is not assigned to an instance on the\nnetwork.",
                "The route's next hop instance cannot ip forward.",
                "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.",
                "The route's nextHopInstance URL refers to an instance that does not exist.",
                "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.",
                "The route's next hop instance does not have a status of RUNNING.",
                "Error which is not critical. We decided to continue the process despite\nthe mentioned error.",
                "No results are present on a particular list page.",
                "Success is reported, but some results may be missing due to errors",
                "Quota information is not available to client requests (e.g:\nregions.list).",
                "The user attempted to use a resource that requires a TOS they have not\naccepted.",
                "Warning that a resource is in use.",
                "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.",
                "When a resource schema validation is ignored.",
                "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.",
                "When undeclared properties in the schema are present",
                "A given scope cannot be reached."
              ],
              "enum": [
                "CLEANUP_FAILED",
                "DEPRECATED_RESOURCE_USED",
                "DEPRECATED_TYPE_USED",
                "DISK_SIZE_LARGER_THAN_IMAGE_SIZE",
                "EXPERIMENTAL_TYPE_USED",
                "EXTERNAL_API_WARNING",
       