{
  "kind": "discovery#restDescription",
  "discoveryVersion": "v1",
  "id": "container:v1",
  "name": "container",
  "version": "v1",
  "revision": "0",
  "title": "Google Container Engine API",
  "description": "Builds and manages clusters that run container-based applications, powered by open source Kubernetes technology.",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
   },
  "documentationLink": "https://cloud.google.com/container-engine/",
  "protocol": "rest",
  "rootUrl": "https://container.googleapis.com/",
  "servicePath": "",
  "baseUrl": "https://container.googleapis.com/",
  "batchPath": "batch",
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query"
    },
    "bearer_token": {
      "type": "string",
      "description": "OAuth bearer token.",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "pp": {
      "type": "boolean",
      "description": "Pretty-print response.",
      "default": "true",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    }
  },
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        },
        "https://www.googleapis.com/auth/userinfo.email": {
          "description": "View your email address"
        }
      }
    }
  },
  "schemas": {
    "ListClustersResponse": {
      "id": "ListClustersResponse",
      "description": "ListClustersResponse is the result of ListClustersRequest.",
      "type": "object",
      "properties": {
        "clusters": {
          "description": "A list of clusters in the project in the specified zone, or\nacross all ones.",
          "type": "array",
          "items": {
            "$ref": "Cluster"
          }
        },
        "missingZones": {
          "description": "If any zones are listed here, the list of clusters returned\nmay be missing those zones.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Cluster": {
      "id": "Cluster",
      "description": "A Google Container Engine cluster.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of this cluster. The name must be unique within this project\nand zone, and can be up to 40 characters with the following restrictions:\n\n* Lowercase letters, numbers, and hyphens only.\n* Must start with a letter.\n* Must end with a number or a letter.",
          "type": "string"
        },
        "description": {
          "description": "An optional description of this cluster.",
          "type": "string"
        },
        "initialNodeCount": {
          "description": "The number of nodes to create in this cluster. You must ensure that your\nCompute Engine <a href=\"\/compute\/docs\/resource-quotas\">resource quota<\/a>\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"node_config\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.",
          "type": "integer",
          "format": "int32"
        },
        "nodeConfig": {
          "description": "Parameters used in creating the cluster's nodes.\nSee `nodeConfig` for the description of its properties.\nFor requests, this field should only be used in lieu of a\n\"node_pool\" object, since this configuration (along with the\n\"initial_node_count\") will be used to create a \"NodePool\" object with an\nauto-generated name. Do not use this and a node_pool at the same time.\nFor responses, this field will be populated with the node configuration of\nthe first node pool.\n\nIf unspecified, the defaults are used.",
          "$ref": "NodeConfig"
        },
        "masterAuth": {
          "description": "The authentication information for accessing the master endpoint.",
          "$ref": "MasterAuth"
        },
        "loggingService": {
          "description": "The logging service the cluster should use to write logs.\nCurrently available options:\n\n* `logging.googleapis.com` - the Google Cloud Logging service.\n* `none` - no logs will be exported from the cluster.\n* if left as an empty string,`logging.googleapis.com` will be used.",
          "type": "string"
        },
        "monitoringService": {
          "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* `monitoring.googleapis.com` - the Google Cloud Monitoring service.\n* `none` - no metrics will be exported from the cluster.\n* if left as an empty string, `monitoring.googleapis.com` will be used.",
          "type": "string"
        },
        "network": {
          "description": "The name of the Google Compute Engine\n[network](\/compute\/docs\/networks-and-firewalls#networks) to which the\ncluster is connected. If left unspecified, the `default` network\nwill be used.",
          "type": "string"
        },
        "clusterIpv4Cidr": {
          "description": "The IP address range of the container pods in this cluster, in\n[CIDR](http:\/\/en.wikipedia.org\/wiki\/Classless_Inter-Domain_Routing)\nnotation (e.g. `10.96.0.0\/14`). Leave blank to have\none automatically chosen or specify a `\/14` block in `10.0.0.0\/8`.",
          "type": "string"
        },
        "addonsConfig": {
          "description": "Configurations for the various addons available to run in the cluster.",
          "$ref": "AddonsConfig"
        },
        "subnetwork": {
          "description": "The name of the Google Compute Engine\n[subnetwork](\/compute\/docs\/subnetworks) to which the\ncluster is connected.",
          "type": "string"
        },
        "nodePools": {
          "description": "The node pools associated with this cluster.\nThis field should not be set if \"node_config\" or \"initial_node_count\" are\nspecified.",
          "type": "array",
          "items": {
            "$ref": "NodePool"
          }
        },
        "locations": {
          "description": "The list of Google Compute Engine\n[locations](\/compute\/docs\/zones#available) in which the cluster's nodes\nshould be located.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "selfLink": {
          "description": "[Output only] Server-defined URL for the resource.",
          "type": "string"
        },
        "zone": {
          "description": "[Output only] The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
          "type": "string"
        },
        "endpoint": {
          "description": "[Output only] The IP address of this cluster's master endpoint.\nThe endpoint can be accessed from the internet at\n`https:\/\/username:password@endpoint\/`.\n\nSee the `masterAuth` property of this resource for username and\npassword information.",
          "type": "string"
        },
        "initialClusterVersion": {
          "description": "[Output only] The software version of the master endpoint and kubelets used\nin the cluster when it was first created. The version can be upgraded over\ntime.\n",
          "type": "string"
        },
        "currentMasterVersion": {
          "description": "[Output only] The current software version of the master endpoint.",
          "type": "string"
        },
        "currentNodeVersion": {
          "description": "[Output only] The current version of the node software components.\nIf they are currently at multiple versions because they're in the process\nof being upgraded, this reflects the minimum version of all nodes.",
          "type": "string"
        },
        "createTime": {
          "description": "[Output only] The time the cluster was created, in\n[RFC3339](https:\/\/www.ietf.org\/rfc\/rfc3339.txt) text format.",
          "type": "string"
        },
        "status": {
          "description": "[Output only] The current status of this cluster.",
          "enumDescriptions": [
            "Not set.",
            "The PROVISIONING state indicates the cluster is being created.",
            "The RUNNING state indicates the cluster has been created and is fully\nusable.",
            "The RECONCILING state indicates that some work is actively being done on\nthe cluster, such as upgrading the master or node software. Details can\nbe found in the `statusMessage` field.",
            "The STOPPING state indicates the cluster is being deleted.",
            "The ERROR state indicates the cluster may be unusable. Details\ncan be found in the `statusMessage` field."
          ],
          "type": "string",
          "enum": [
            "STATUS_UNSPECIFIED",
            "PROVISIONING",
            "RUNNING",
            "RECONCILING",
            "STOPPING",
            "ERROR"
          ]
        },
        "statusMessage": {
          "description": "[Output only] Additional information about the current status of this\ncluster, if available.",
          "type": "string"
        },
        "nodeIpv4CidrSize": {
          "description": "[Output only] The size of the address space on each node for hosting\ncontainers. This is provisioned from within the `container_ipv4_cidr`\nrange.",
          "type": "integer",
          "format": "int32"
        },
        "servicesIpv4Cidr": {
          "description": "[Output only] The IP address range of the Kubernetes services in\nthis cluster, in\n[CIDR](http:\/\/en.wikipedia.org\/wiki\/Classless_Inter-Domain_Routing)\nnotation (e.g. `1.2.3.4\/29`). Service addresses are\ntypically put in the last `\/16` from the container CIDR.",
          "type": "string"
        },
        "instanceGroupUrls": {
          "description": "[Output only] The resource URLs of [instance\ngroups](\/compute\/docs\/instance-groups\/) associated with this\ncluster.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "currentNodeCount": {
          "description": "[Output only] The number of nodes currently in the cluster.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "NodeConfig": {
      "id": "NodeConfig",
      "description": "Parameters that describe the nodes in a cluster.",
      "type": "object",
      "properties": {
        "machineType": {
          "description": "The name of a Google Compute Engine [machine\ntype](\/compute\/docs\/machine-types) (e.g.\n`n1-standard-1`).\n\nIf unspecified, the default machine type is\n`n1-standard-1`.",
          "type": "string"
        },
        "diskSizeGb": {
          "description": "Size of the disk attached to each node, specified in GB.\nThe smallest allowed disk size is 10GB.\n\nIf unspecified, the default disk size is 100GB.",
          "type": "integer",
          "format": "int32"
        },
        "oauthScopes": {
          "description": "The set of Google API scopes to be made available on all of the\nnode VMs under the \"default\" service account.\n\nThe following scopes are recommended, but not required, and by default are\nnot included:\n\n* `https:\/\/www.googleapis.com\/auth\/compute` is required for mounting\npersistent storage on your nodes.\n* `https:\/\/www.googleapis.com\/auth\/devstorage.read_only` is required for\ncommunicating with **gcr.io**\n(the [Google Container Registry](\/container-registry\/)).\n\nIf unspecified, no scopes are added, unless Cloud Logging or Cloud\nMonitoring are enabled, in which case their required scopes will be added.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "serviceAccount": {
          "description": "The Google Cloud Platform Service Account to be used by the node VMs. If\nno Service Account is specified, the \"default\" service account is used.",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata key\/value pairs assigned to instances in the cluster.\n\nKeys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes\nin length. These are reflected as part of a URL in the metadata server.\nAdditionally, to avoid ambiguity, keys must not conflict with any other\nmetadata keys for the project or be one of the four reserved keys:\n\"instance-template\", \"kube-env\", \"startup-script\", and \"user-data\"\n\nValues are free-form strings, and only have meaning as interpreted by\nthe image running in the instance. The only restriction placed on them is\nthat each value's size must be less than or equal to 32 KB.\n\nThe total size of all keys and values must be less than 512 KB.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "imageType": {
          "description": "The image type to use for this node. Note that for a given image type,\nthe latest version of it will be used.",
          "type": "string"
        },
        "labels": {
          "description": "The map of Kubernetes labels (key\/value pairs) to be applied to each node.\nThese will added in addition to any default label(s) that\nKubernetes may apply to the node.\nIn case of conflict in label keys, the applied set may differ depending on\nthe Kubernetes version -- it's best to assume the behavior is undefined\nand conflicts should be avoided.\nFor more information, including usage and the valid values, see:\nhttp:\/\/kubernetes.io\/v1.1\/docs\/user-guide\/labels.html",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "localSsdCount": {
          "description": "The number of local SSD disks that to be attached to the node.\n\nThe limit for this value is dependant upon the maximum number of\ndisks available on a machine per zone. See:\nhttps:\/\/cloud.google.com\/compute\/docs\/disks\/local-ssd#local_ssd_limits\nfor more information.\n",
          "type": "integer",
          "format": "int32"
        },
        "tags": {
          "description": "The list of instance tags applied to all nodes. Tags are used to identify\nvalid sources or targets for network firewalls and are specified by\nthe client during cluster or node pool creation. Each tag within the list\nmust comply with RFC1035.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "MasterAuth": {
      "id": "MasterAuth",
      "description": "The authentication information for accessing the master endpoint.\nAuthentication can be done using HTTP basic auth or using client\ncertificates.",
      "type": "object",
      "properties": {
        "username": {
          "description": "The username to use for HTTP basic authentication to the master endpoint.",
          "type": "string"
        },
        "password": {
          "description": "The password to use for HTTP basic authentication to the master endpoint.\nBecause the master endpoint is open to the Internet, you should create a\nstrong password.",
          "type": "string"
        },
        "clusterCaCertificate": {
          "description": "[Output only] Base64-encoded public certificate that is the root of\ntrust for the cluster.",
          "type": "string"
        },
        "clientCertificate": {
          "description": "[Output only] Base64-encoded public certificate used by clients to\nauthenticate to the cluster endpoint.",
          "type": "string"
        },
        "clientKey": {
          "description": "[Output only] Base64-encoded private key used by clients to authenticate\nto the cluster endpoint.",
          "type": "string"
        }
      }
    },
    "AddonsConfig": {
      "id": "AddonsConfig",
      "description": "Configuration for the addons that can be automatically spun up in the\ncluster, enabling additional functionality.",
      "type": "object",
      "properties": {
        "httpLoadBalancing": {
          "description": "Configuration for the HTTP (L7) load balancing controller addon, which\nmakes it easy to set up HTTP load balancers for services in a cluster.",
          "$ref": "HttpLoadBalancing"
        },
        "horizontalPodAutoscaling": {
          "description": "Configuration for the horizontal pod autoscaling feature, which\nincreases or decreases the number of replica pods a replication controller\nhas based on the resource usage of the existing pods.",
          "$ref": "HorizontalPodAutoscaling"
        }
      }
    },
    "HttpLoadBalancing": {
      "id": "HttpLoadBalancing",
      "description": "Configuration options for the HTTP (L7) load balancing controller addon,\nwhich makes it easy to set up HTTP load balancers for services in a cluster.",
      "type": "object",
      "properties": {
        "disabled": {
          "description": "Whether the HTTP Load Balancing controller is enabled in the cluster.\nWhen enabled, it runs a small pod in the cluster that manages the load\nbalancers.",
          "type": "boolean"
        }
      }
    },
    "HorizontalPodAutoscaling": {
      "id": "HorizontalPodAutoscaling",
      "description": "Configuration options for the horizontal pod autoscaling feature, which\nincreases or decreases the number of replica pods a replication controller\nhas based on the resource usage of the existing pods.",
      "type": "object",
      "properties": {
        "disabled": {
          "description": "Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.\nWhen enabled, it ensures that a Heapster pod is running in the cluster,\nwhich is also used by the Cloud Monitoring service.",
          "type": "boolean"
        }
      }
    },
    "NodePool": {
      "id": "NodePool",
      "description": "NodePool contains the name and configuration for a cluster's node pool.\nNode pools are a set of nodes (i.e. VM's), with a common configuration and\nspecification, under the control of the cluster master. They may have a set\nof Kubernetes labels applied to them, which may be used to reference them\nduring pod scheduling. They may also be resized up or down, to accommodate\nthe workload.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the node pool.",
          "type": "string"
        },
        "config": {
          "description": "The node configuration of the pool.",
          "$ref": "NodeConfig"
        },
        "initialNodeCount": {
          "description": "The initial node count for the pool. You must ensure that your\nCompute Engine <a href=\"\/compute\/docs\/resource-quotas\">resource quota<\/a>\nis sufficient for this number of instances. You must also have available\nfirewall and routes quota.",
          "type": "integer",
          "format": "int32"
        },
        "selfLink": {
          "description": "[Output only] Server-defined URL for the resource.",
          "type": "string"
        },
        "version": {
          "description": "[Output only] The version of the Kubernetes of this node.",
          "type": "string"
        },
        "instanceGroupUrls": {
          "description": "[Output only] The resource URLs of [instance\ngroups](\/compute\/docs\/instance-groups\/) associated with this\nnode pool.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "description": "[Output only] The status of the nodes in this pool instance.",
          "enumDescriptions": [
            "Not set.",
            "The PROVISIONING state indicates the node pool is being created.",
            "The RUNNING state indicates the node pool has been created\nand is fully usable.",
            "The RUNNING_WITH_ERROR state indicates the node pool has been created\nand is partially usable. Some error state has occurred and some\nfunctionality may be impaired. Customer may need to reissue a request\nor trigger a new update.",
            "The RECONCILING state indicates that some work is actively being done on\nthe node pool, such as upgrading node software. Details can\nbe found in the `statusMessage` field.",
            "The STOPPING state indicates the node pool is being deleted.",
            "The ERROR state indicates the node pool may be unusable. Details\ncan be found in the `statusMessage` field."
          ],
          "type": "string",
          "enum": [
            "STATUS_UNSPECIFIED",
            "PROVISIONING",
            "RUNNING",
            "RUNNING_WITH_ERROR",
            "RECONCILING",
            "STOPPING",
            "ERROR"
          ]
        },
        "statusMessage": {
          "description": "[Output only] Additional information about the current status of this\nnode pool instance, if available.",
          "type": "string"
        },
        "autoscaling": {
          "description": "Autoscaler configuration for this NodePool. Autoscaler is enabled\nonly if a valid configuration is present.",
          "$ref": "NodePoolAutoscaling"
        }
      }
    },
    "NodePoolAutoscaling": {
      "id": "NodePoolAutoscaling",
      "description": "NodePoolAutoscaling contains information required by cluster autoscaler to\nadjust the size of the node pool to the current cluster usage.",
      "type": "object",
      "properties": {
        "enabled": {
          "description": "Is autoscaling enabled for this node pool.",
          "type": "boolean"
        },
        "minNodeCount": {
          "description": "Minimum number of nodes in the NodePool. Must be >= 1 and <=\nmax_node_count.",
          "type": "integer",
          "format": "int32"
        },
        "maxNodeCount": {
          "description": "Maximum number of nodes in the NodePool. Must be >= min_node_count. There\nhas to enough quota to scale up the cluster.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "CreateClusterRequest": {
      "id": "CreateClusterRequest",
      "description": "CreateClusterRequest creates a cluster.",
      "type": "object",
      "properties": {
        "cluster": {
          "description": "A [cluster\nresource](\/container-engine\/reference\/rest\/v1\/projects.zones.clusters)",
          "$ref": "Cluster"
        }
      }
    },
    "Operation": {
      "id": "Operation",
      "description": "This operation resource represents operations that may have happened or are\nhappening on the cluster. All fields are output only.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The server-assigned ID for the operation.",
          "type": "string"
        },
        "zone": {
          "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the operation\nis taking place.",
          "type": "string"
        },
        "operationType": {
          "description": "The operation type.",
          "enumDescriptions": [
            "Not set.",
            "Cluster create.",
            "Cluster delete.",
            "A master upgrade.",
            "A node upgrade.",
            "Cluster repair.",
            "Cluster update.",
            "Node pool create.",
            "Node pool delete."
          ],
          "type": "string",
          "enum": [
            "TYPE_UNSPECIFIED",
            "CREATE_CLUSTER",
            "DELETE_CLUSTER",
            "UPGRADE_MASTER",
            "UPGRADE_NODES",
            "REPAIR_CLUSTER",
            "UPDATE_CLUSTER",
            "CREATE_NODE_POOL",
            "DELETE_NODE_POOL"
          ]
        },
        "status": {
          "description": "The current status of the operation.",
          "enumDescriptions": [
            "Not set.",
            "The operation has been created.",
            "The operation is currently running.",
            "The operation is done, either cancelled or completed."
          ],
          "type": "string",
          "enum": [
            "STATUS_UNSPECIFIED",
            "PENDING",
            "RUNNING",
            "DONE"
          ]
        },
        "detail": {
          "description": "Detailed operation progress, if available.",
          "type": "string"
        },
        "statusMessage": {
          "description": "If an error has occurred, a textual description of the error.",
          "type": "string"
        },
        "selfLink": {
          "description": "Server-defined URL for the resource.",
          "type": "string"
        },
        "targetLink": {
          "description": "Server-defined URL for the target of the operation.",
          "type": "string"
        }
      }
    },
    "UpdateClusterRequest": {
      "id": "UpdateClusterRequest",
      "description": "UpdateClusterRequest updates the settings of a cluster.",
      "type": "object",
      "properties": {
        "update": {
          "description": "A description of the update.",
          "$ref": "ClusterUpdate"
        }
      }
    },
    "ClusterUpdate": {
      "id": "ClusterUpdate",
      "description": "ClusterUpdate describes an update to the cluster. Exactly one update can\nbe applied to a cluster with each request, so at most one field can be\nprovided.",
      "type": "object",
      "properties": {
        "desiredNodeVersion": {
          "description": "The Kubernetes version to change the nodes to (typically an\nupgrade). Use `-` to upgrade to the latest version supported by\nthe server.",
          "type": "string"
        },
        "desiredMonitoringService": {
          "description": "The monitoring service the cluster should use to write metrics.\nCurrently available options:\n\n* \"monitoring.googleapis.com\" - the Google Cloud Monitoring service\n* \"none\" - no metrics will be exported from the cluster",
          "type": "string"
        },
        "desiredAddonsConfig": {
          "description": "Configurations for the various addons available to run in the cluster.",
          "$ref": "AddonsConfig"
        },
        "desiredNodePoolId": {
          "description": "The node pool to be upgraded. This field is mandatory if\n\"desired_node_version\", \"desired_image_family\" or\n\"desired_node_pool_autoscaling\" is specified and there is more than one\nnode pool on the cluster.",
          "type": "string"
        },
        "desiredImageType": {
          "description": "The desired image type for the node pool.\nNOTE: Set the \"desired_node_pool\" field as well.",
          "type": "string"
        },
        "desiredNodePoolAutoscaling": {
          "description": "Autoscaler configuration for the node pool specified in\ndesired_node_pool_id. If there is only one pool in the\ncluster and desired_node_pool_id is not provided then\nthe change applies to that single node pool.",
          "$ref": "NodePoolAutoscaling"
        },
        "desiredLocations": {
          "description": "The desired list of Google Compute Engine\n[locations](\/compute\/docs\/zones#available) in which the cluster's nodes\nshould be located. Changing the locations a cluster is in will result\nin nodes being either created or removed from the cluster, depending on\nwhether locations are being added or removed.\n\nThis list must always include the cluster's primary zone.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "desiredMasterVersion": {
          "description": "\nWhitelisted and internal users can change the master to any version.\n\nThe Kubernetes version to change the master to. The only valid value is the\nlatest supported version. Use \"-\" to have the server automatically select\nthe latest version.",
          "type": "string"
        },
        "desiredMasterMachineType": {
          "description": "The name of a Google Compute Engine [machine\ntype](\/compute\/docs\/machine-types)\n(e.g. `n1-standard-8`) to change the master to.",
          "type": "string"
        }
      }
    },
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "description": "ListOperationsResponse is the result of ListOperationsRequest.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "A list of operations in the project in the specified zone.",
          "type": "array",
          "items": {
            "$ref": "Operation"
          }
        },
        "missingZones": {
          "description": "If any zones are listed here, the list of operations returned\nmay be missing the operations from those zones.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ServerConfig": {
      "id": "ServerConfig",
      "description": "Container Engine service configuration.",
      "type": "object",
      "properties": {
        "defaultClusterVersion": {
          "description": "Version of Kubernetes the service deploys by default.",
          "type": "string"
        },
        "buildClientInfo": {
          "description": "apiserver build BuildData::ClientInfo()",
          "type": "string"
        },
        "validNodeVersions": {
          "description": "List of valid node upgrade target versions.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "defaultImageType": {
          "description": "Default image type.",
          "type": "string"
        },
        "validImageTypes": {
          "description": "List of valid image types.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ListNodePoolsResponse": {
      "id": "ListNodePoolsResponse",
      "description": "ListNodePoolsResponse is the result of ListNodePoolsRequest.",
      "type": "object",
      "properties": {
        "nodePools": {
          "description": "A list of node pools for a cluster.",
          "type": "array",
          "items": {
            "$ref": "NodePool"
          }
        }
      }
    },
    "CreateNodePoolRequest": {
      "id": "CreateNodePoolRequest",
      "description": "CreateNodePoolRequest creates a node pool for a cluster.",
      "type": "object",
      "properties": {
        "nodePool": {
          "description": "The node pool to create.",
          "$ref": "NodePool"
        }
      }
    },
    "CreateTokenRequest": {
      "id": "CreateTokenRequest",
      "description": "A request for a compute-read-write (https:\/\/www.googleapis.com\/auth\/compute)\nscoped OAuth2 access token for <project_number>, to allow hosted masters to\nmake modifications to a user's project.",
      "type": "object",
      "properties": {
        "projectNumber": {
          "description": "The project number for which the access is being requested.  This is the\nproject in which this master's cluster resides.\n\nNote that this must be a project number, not a project ID.",
          "type": "string",
          "format": "int64"
        },
        "clusterId": {
          "description": "The name of this master's cluster.",
          "type": "string"
        }
      }
    },
    "Token": {
      "id": "Token",
      "description": "A compute-read-write (https:\/\/www.googleapis.com\/auth\/compute) scoped OAuth2\naccess token, to allow hosted masters to make modifications to a user's\nproject.",
      "type": "object",
      "properties": {
        "accessToken": {
          "description": "The OAuth2 access token",
          "type": "string"
        },
        "expireTime": {
          "description": "The expiration time of the token.",
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "CreateSignedUrlsRequest": {
      "id": "CreateSignedUrlsRequest",
      "description": "A request for signed URLs that allow for writing a file to a private GCS\nbucket for storing backups of hosted master data.",
      "type": "object",
      "properties": {
        "projectNumber": {
          "description": "The project number for which the signed URLs are being requested.  This is\nthe project in which this master's cluster resides.\n\nNote that this must be a project number, not a project ID.",
          "type": "string",
          "format": "int64"
        },
        "clusterId": {
          "description": "The name of this master's cluster.",
          "type": "string"
        },
        "filenames": {
          "description": "The names of the files for which a signed URLs are being requested.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "SignedUrls": {
      "id": "SignedUrls",
      "description": "Signed URLs that allow for writing a file to a private GCS bucket for\nstoring backups of hosted master data.",
      "type": "object",
      "properties": {
        "signedUrls": {
          "description": "The signed URLs for writing the request files, in the same order as the\nfilenames in the request.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "AuthenticateRequest": {
      "id": "AuthenticateRequest",
      "description": "A request to authenticate a user based on a provided OAuth2 token.\n\nThis should look very close to the TokenReview struct in\nhttp:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/pkg\/apis\/authentication.k8s.io\/v1beta1\/types.go.\nThis message has 4 GKE-specific fields that get mapped from the path, but the\nother fields (the expected JSON payload) must match TokenReview.",
      "type": "object",
      "properties": {
        "kind": {
          "description": "Fields from \"pkg\/apis\/authentication.k8s.io\/v1beta1\".TokenReview:\n\nThe \"kind\" of the TokenReview object.",
          "type": "string"
        },
        "apiVersion": {
          "description": "The api version of the TokenReview object.",
          "type": "string"
        },
        "spec": {
          "description": "The information about the request being evaluated. It contains the token\nthat the server should authenticate.",
          "$ref": "TokenReviewSpec"
        },
        "status": {
          "description": "The response for the provided request. (this won't be filled in for an\nAuthenticateRequest, but it is part of the struct, so we need it here to be\nsafe).",
          "$ref": "TokenReviewStatus"
        }
      }
    },
    "TokenReviewSpec": {
      "id": "TokenReviewSpec",
      "description": "The description of the request for review of an OAuth2 token for\npurposes of authentication.\nThis should match the TokenReviewSpec struct in\npkg\/apis\/authentication.k8s.io\/v1beta1\/types.go",
      "type": "object",
      "properties": {
        "token": {
          "description": "The token for the server to authenticate.",
          "type": "string"
        }
      }
    },
    "TokenReviewStatus": {
      "id": "TokenReviewStatus",
      "description": "The result of the request for authentication.\nThis should match the TokenReviewStatus struct in\npkg\/apis\/authentication.k8s.io\/v1beta1\/types.go",
      "type": "object",
      "properties": {
        "authenticated": {
          "description": "Whether the server was able to authenticate the token.",
          "type": "boolean"
        },
        "user": {
          "description": "The authenticated user associated with the token.",
          "$ref": "UserInfo"
        }
      }
    },
    "UserInfo": {
      "id": "UserInfo",
      "description": "The attributes of an authenticated user.\nThis should match the UserInfo struct in\npkg\/apis\/authentication.k8s.io\/v1beta1\/types.go",
      "type": "object",
      "properties": {
        "username": {
          "description": "The name of the user. This should be the email address associated with the\nGAIA identity of the user.",
          "type": "string"
        },
        "uid": {
          "description": "A unique identifier (across time) for the user. This is not currently\nfilled in for GKE.",
          "type": "string"
        },
        "groups": {
          "description": "Groups that this user is a part of. This is not currently filled in for\nGKE.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "AuthenticateResponse": {
      "id": "AuthenticateResponse",
      "description": "A response with the authenticated identity.\nThis should match exactly with the TokenReview struct from\nhttp:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/pkg\/apis\/authentication.k8s.io\/types.go.",
      "type": "object",
      "properties": {
        "kind": {
          "description": "The \"kind\" of the TokenReview object.",
          "type": "string"
        },
        "apiVersion": {
          "description": "The api version of the TokenReview object.",
          "type": "string"
        },
        "spec": {
          "description": "The information about the request that was evaluated.\nThis field (along with kind & api_version) are returned unchanged from the\nAuthenticateRequest. The caller probably doesn't care, but it would allow\nthe caller to verify the question the server thought it was answering.",
          "$ref": "TokenReviewSpec"
        },
        "status": {
          "description": "The response for the provided request.",
          "$ref": "TokenReviewStatus"
        }
      }
    },
    "AuthorizeRequest": {
      "id": "AuthorizeRequest",
      "description": "A request to authorize a user action. The request contains the attributes of\nthe action the user is attempting. These attributes are mapped to a GKE IAM\npermission and policy to check.\n\nThis should look very close to the SubjectAccessReview struct in\nhttp:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/pkg\/apis\/authorization\/v1beta1\/types.go.\nThis message has 4 GKE-specific fields that get mapped from the path, but the\nother fields (the expected JSON payload) must match SubjectAccessReview.",
      "type": "object",
      "properties": {
        "kind": {
          "description": "Fields from \"pkg\/apis\/authorization\/v1beta1\".SubjectAccessReview:\n\nThe \"kind\" of the SubjectAccessReview object.",
          "type": "string"
        },
        "apiVersion": {
          "description": "The api version of the SubjectAccessReview object.",
          "type": "string"
        },
        "spec": {
          "description": "The information about the user action being evaluated.",
          "$ref": "SubjectAccessReviewSpec"
        },
        "status": {
          "description": "The response for the provided request (this won't be filled in for an\nAuthorizeRequest, but it is part of the struct, so we need it here to be\nsafe).",
          "$ref": "SubjectAccessReviewStatus"
        }
      }
    },
    "SubjectAccessReviewSpec": {
      "id": "SubjectAccessReviewSpec",
      "description": "The description of the request for authorization.\nThis should match the SubjectAccessReviewSpec struct in\npkg\/apis\/authorization\/v1beta1\/types.go",
      "type": "object",
      "properties": {
        "resourceAttributes": {
          "description": "The attributes of the request for a resource request. If this field is set,\nNonResourceAttributes should not be set (and will be ignored).",
          "$ref": "ResourceAttributes"
        },
        "nonResourceAttributes": {
          "description": "The attributes of the request for a non-resource request. If this field is\nset, ResourceAttributes should not be set (and will be ignored).",
          "$ref": "NonResourceAttributes"
        },
        "user": {
          "description": "The user making the request.",
          "type": "string"
        },
        "groups": {
          "description": "Any groups this user may be a part of (this is not used for GKE IAM).",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ResourceAttributes": {
      "id": "ResourceAttributes",
      "description": "The authorization attributes of the resource request.\nThis should match the ResourceAttributes struct in\npkg\/apis\/authorization\/v1beta1\/types.go.",
      "type": "object",
      "properties": {
        "namespace": {
          "description": "The namespace of the request.",
          "type": "string"
        },
        "verb": {
          "description": "The Kubernetes verb of the request (e.g. get, create, list, etc.)",
          "type": "string"
        },
        "group": {
          "description": "The API group of the resource.",
          "type": "string"
        },
        "version": {
          "description": "The API version of the resource.",
          "type": "string"
        },
        "resource": {
          "description": "The type of the resource in the request.",
          "type": "string"
        },
        "subresource": {
          "description": "The type of the subresource in the request.",
          "type": "string"
        },
        "name": {
          "description": "The name of the resource in the request.",
          "type": "string"
        }
      }
    },
    "NonResourceAttributes": {
      "id": "NonResourceAttributes",
      "description": "The authorization attributes of a non-resource request.\nThis should match the NonResourceAttributes struct in\npkg\/apis\/authorization\/v1beta1\/types.go.",
      "type": "object",
      "properties": {
        "path": {
          "description": "The URL path of the request.",
          "type": "string"
        },
        "verb": {
          "description": "The verb of the request",
          "type": "string"
        }
      }
    },
    "SubjectAccessReviewStatus": {
      "id": "SubjectAccessReviewStatus",
      "description": "The result of the request for authorization.\nThis should match the SubjectAccessReviewStatus struct in\npkg\/apis\/authorization\/v1beta1\/types.go.",
      "type": "object",
      "properties": {
        "allowed": {
          "description": "Is the action authorized.",
          "type": "boolean"
        },
        "reason": {
          "description": "Error message if unauthorized.",
          "type": "string"
        }
      }
    },
    "AuthorizeResponse": {
      "id": "AuthorizeResponse",
      "description": "A response to a request for authorization.\nThis should match exactly with the SubjectAccessReview struct from\nhttp:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/pkg\/apis\/v1beta1\/authorization\/types.go.",
      "type": "object",
      "properties": {
        "kind": {
          "description": "The \"kind\" of the SubjectAccessReview object.",
          "type": "string"
        },
        "apiVersion": {
          "description": "The api version of the SubjectAccessReview object.",
          "type": "string"
        },
        "spec": {
          "description": "The information about the request that was evaluated.\nThis field (along with kind & api_version) are returned unchanged from the\nAuthorizeRequest. The caller probably doesn't care, but it would allow the\ncaller to verify the question the server thought it was answering.",
          "$ref": "SubjectAccessReviewSpec"
        },
        "status": {
          "description": "The response for the provided request.",
          "$ref": "SubjectAccessReviewStatus"
        }
      }
    }
  },
  "resources": {
    "projects": {
      "resources": {
        "zones": {
          "methods": {
            "getServerconfig": {
              "id": "container.projects.zones.getServerconfig",
              "path": "v1/projects/{projectId}/zones/{zone}/serverconfig",
              "flatPath": "v1/projects/{projectId}/zones/{zone}/serverconfig",
              "httpMethod": "GET",
              "description": "Returns configuration info about the Container Engine service.",
              "parameters": {
                "projectId": {
                  "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "zone": {
                  "description": "The name of the Google Compute Engine [zone](\/compute\/docs\/zones#available)\nto return operations for.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "projectId",
                "zone"
              ],
              "response": {
                "$ref": "ServerConfig"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
          ,
          "resources": {
            "clusters": {
              "methods": {
                "list": {
                  "id": "container.projects.zones.clusters.list",
                  "path": "v1/projects/{projectId}/zones/{zone}/clusters",
                  "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters",
                  "httpMethod": "GET",
                  "description": "Lists all clusters owned by a project in either the specified zone or all\nzones.",
                  "parameters": {
                    "projectId": {
                      "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides, or \"-\" for all zones.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "projectId",
                    "zone"
                  ],
                  "response": {
                    "$ref": "ListClustersResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "id": "container.projects.zones.clusters.get",
                  "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
                  "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
                  "httpMethod": "GET",
                  "description": "Gets the details of a specific cluster.",
                  "parameters": {
                    "projectId": {
                      "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "clusterId": {
                      "description": "The name of the cluster to retrieve.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "projectId",
                    "zone",
                    "clusterId"
                  ],
                  "response": {
                    "$ref": "Cluster"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "create": {
                  "id": "container.projects.zones.clusters.create",
                  "path": "v1/projects/{projectId}/zones/{zone}/clusters",
                  "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters",
                  "httpMethod": "POST",
                  "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](\/compute\/docs\/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe cluster creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range is being used by the cluster.",
                  "parameters": {
                    "projectId": {
                      "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "projectId",
                    "zone"
                  ],
                  "request": {
                    "$ref": "CreateClusterRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "update": {
                  "id": "container.projects.zones.clusters.update",
                  "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
                  "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
                  "httpMethod": "PUT",
                  "description": "Updates the settings of a specific cluster.",
                  "parameters": {
                    "projectId": {
                      "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "clusterId": {
                      "description": "The name of the cluster to upgrade.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "projectId",
                    "zone",
                    "clusterId"
                  ],
                  "request": {
                    "$ref": "UpdateClusterRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "id": "container.projects.zones.clusters.delete",
                  "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
                  "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
                  "httpMethod": "DELETE",
                  "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster\n(e.g. load balancer resources) will not be deleted if they weren't present\nat the initial create time.",
                  "parameters": {
                    "projectId": {
                      "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "clusterId": {
                      "description": "The name of the cluster to delete.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "projectId",
                    "zone",
                    "clusterId"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
              ,
              "resources": {
                "nodePools": {
                  "methods": {
                    "list": {
                      "id": "container.projects.zones.clusters.nodePools.list",
                      "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
                      "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
                      "httpMethod": "GET",
                      "description": "Lists the node pools for a cluster.",
                      "parameters": {
                        "projectId": {
                          "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/developers.google.com\/console\/help\/new\/#projectnumber).",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "zone": {
                          "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "clusterId": {
                          "description": "The name of the cluster.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "projectId",
                        "zone",
                        "clusterId"
                      ],
                      "response": {
                        "$ref": "ListNodePoolsResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "id": "container.projects.zones.clusters.nodePools.get",
                      "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
                      "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
                      "httpMethod": "GET",
                      "description": "Retrieves the node pool requested.",
                      "parameters": {
                        "projectId": {
                          "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/developers.google.com\/console\/help\/new\/#projectnumber).",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "zone": {
                          "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "clusterId": {
                          "description": "The name of the cluster.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "nodePoolId": {
                          "description": "The name of the node pool.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "projectId",
                        "zone",
                        "clusterId",
                        "nodePoolId"
                      ],
                      "response": {
                        "$ref": "NodePool"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "create": {
                      "id": "container.projects.zones.clusters.nodePools.create",
                      "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
                      "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
                      "httpMethod": "POST",
                      "description": "Creates a node pool for a cluster.",
                      "parameters": {
                        "projectId": {
                          "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/developers.google.com\/console\/help\/new\/#projectnumber).",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "zone": {
                          "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "clusterId": {
                          "description": "The name of the cluster.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "projectId",
                        "zone",
                        "clusterId"
                      ],
                      "request": {
                        "$ref": "CreateNodePoolRequest"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "delete": {
                      "id": "container.projects.zones.clusters.nodePools.delete",
                      "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
                      "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
                      "httpMethod": "DELETE",
                      "description": "Deletes a node pool from a cluster.",
                      "parameters": {
                        "projectId": {
                          "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/developers.google.com\/console\/help\/new\/#projectnumber).",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "zone": {
                          "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "clusterId": {
                          "description": "The name of the cluster.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "nodePoolId": {
                          "description": "The name of the node pool to delete.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "projectId",
                        "zone",
                        "clusterId",
                        "nodePoolId"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    }
                  }
                }
              }
            },
            "operations": {
              "methods": {
                "list": {
                  "id": "container.projects.zones.operations.list",
                  "path": "v1/projects/{projectId}/zones/{zone}/operations",
                  "flatPath": "v1/projects/{projectId}/zones/{zone}/operations",
                  "httpMethod": "GET",
                  "description": "Lists all operations in a project in a specific zone or all zones.",
                  "parameters": {
                    "projectId": {
                      "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The name of the Google Compute Engine [zone](\/compute\/docs\/zones#available)\nto return operations for, or `-` for all zones.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "projectId",
                    "zone"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "id": "container.projects.zones.operations.get",
                  "path": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}",
                  "flatPath": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}",
                  "httpMethod": "GET",
                  "description": "Gets the specified operation.",
                  "parameters": {
                    "projectId": {
                      "description": "The Google Developers Console [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The name of the Google Compute Engine\n[zone](\/compute\/docs\/zones#available) in which the cluster\nresides.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "operationId": {
                      "description": "The server-assigned `name` of the operation.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "projectId",
                    "zone",
                    "operationId"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "masterProjects": {
      "resources": {
        "zones": {
          "methods": {
            "authenticate": {
              "id": "container.masterProjects.zones.authenticate",
              "path": "v1/masterProjects/{masterProjectId}/zones/{zone}/{projectNumber}/{clusterId}/authenticate",
              "flatPath": "v1/masterProjects/{masterProjectId}/zones/{zone}/{projectNumber}/{clusterId}/authenticate",
              "httpMethod": "POST",
              "description": "Processes a request to authenticate a token. If it is able to authenticate\nthe token, the email for the authorized user is also returned.\nAuthenticateResponse also contains fields from the AuthenticateRequest. The\nserver is expected to only fill in the AuthenticateResponse.Status. This is\ndue to how the Authentication types are defined for the Kubernetes webhook\nauthenticator:\nhttps:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/pkg\/apis\/authentication.k8s.io\/v1beta1\/types.go.",
              "parameters": {
                "masterProjectId": {
                  "description": "The hosted master project in which this master resides.  This can be\neither a [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "zone": {
                  "description": "The zone of this master's cluster.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "projectNumber": {
                  "description": "The project number for which the signed URLs are being requested.  This is\nthe project in which this master's cluster resides.\n\nNote that this must be a project number, not a project ID.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "format": "int64"
                },
                "clusterId": {
                  "description": "The name of this master's cluster.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "masterProjectId",
                "zone",
                "projectNumber",
                "clusterId"
              ],
              "request": {
                "$ref": "AuthenticateRequest"
              },
              "response": {
                "$ref": "AuthenticateResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/userinfo.email"
              ]
            },
            "authorize": {
              "id": "container.masterProjects.zones.authorize",
              "path": "v1/masterProjects/{masterProjectId}/zones/{zone}/{projectNumber}/{clusterId}/authorize",
              "flatPath": "v1/masterProjects/{masterProjectId}/zones/{zone}/{projectNumber}/{clusterId}/authorize",
              "httpMethod": "POST",
              "description": "Processes the attributes of a user request and determines whether or not\nto authorize the request. If unauthorized, a reason is also provided. The\nAuthorizeResponse also contains fields from the AuthorizeRequest. The\nserver is expected to only fill in the AuthorizeResponse.Status. This is\ndue to how the Authorization types are defined for the Kubernetes webhook\nauthorizer:\nhttps:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/pkg\/apis\/authorization\/v1beta1\/types.go.",
              "parameters": {
                "masterProjectId": {
                  "description": "The hosted master project in which this master resides.  This can be\neither a [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "zone": {
                  "description": "The zone of this master's cluster.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "projectNumber": {
                  "description": "The project number for which the request is being authorized.  This is\nthe project in which this master's cluster resides.\n\nThis is an int64, so it must be a project number, not a project ID.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "format": "int64"
                },
                "clusterId": {
                  "description": "The name of this master's cluster.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "masterProjectId",
                "zone",
                "projectNumber",
                "clusterId"
              ],
              "request": {
                "$ref": "AuthorizeRequest"
              },
              "response": {
                "$ref": "AuthorizeResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/userinfo.email"
              ]
            }
          }
          ,
          "resources": {
            "tokens": {
              "methods": {
                "create": {
                  "id": "container.masterProjects.zones.tokens.create",
                  "path": "v1/masterProjects/{masterProjectId}/zones/{zone}/tokens",
                  "flatPath": "v1/masterProjects/{masterProjectId}/zones/{zone}/tokens",
                  "httpMethod": "POST",
                  "description": "Creates a compute-read-write (https:\/\/www.googleapis.com\/auth\/compute)\nscoped OAuth2 access token for <project_number>, to allow a hosted master\nto make modifications to its user's project.",
                  "parameters": {
                    "masterProjectId": {
                      "description": "The hosted master project in which this master resides.  This can be\neither a [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The zone of this master's cluster.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "masterProjectId",
                    "zone"
                  ],
                  "request": {
                    "$ref": "CreateTokenRequest"
                  },
                  "response": {
                    "$ref": "Token"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/userinfo.email"
                  ]
                }
              }
            },
            "signedUrls": {
              "methods": {
                "create": {
                  "id": "container.masterProjects.zones.signedUrls.create",
                  "path": "v1/masterProjects/{masterProjectId}/zones/{zone}/signedUrls",
                  "flatPath": "v1/masterProjects/{masterProjectId}/zones/{zone}/signedUrls",
                  "httpMethod": "POST",
                  "description": "Creates signed URLs that allow for writing a file to a private GCS bucket\nfor storing backups of hosted master data. Signed URLs are explained here:\nhttps:\/\/cloud.google.com\/storage\/docs\/access-control#Signed-URLs",
                  "parameters": {
                    "masterProjectId": {
                      "description": "The hosted master project in which this master resides.  This can be\neither a [project ID or project\nnumber](https:\/\/support.google.com\/cloud\/answer\/6158840).",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "zone": {
                      "description": "The zone of this master's cluster.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "masterProjectId",
                    "zone"
                  ],
                  "request": {
                    "$ref": "CreateSignedUrlsRequest"
                  },
                  "response": {
                    "$ref": "SignedUrls"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/userinfo.email"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "basePath": ""
}